4
4
* SPDX-License-Identifier: Apache-2.0
5
5
*/
6
6
7
+ import { Endpoint } from "#device/Endpoint.js" ;
7
8
import {
8
9
Diagnostic ,
9
10
ImplementationError ,
@@ -15,6 +16,7 @@ import {
15
16
isDeepEqual ,
16
17
} from "#general" ;
17
18
import { AccessLevel , AttributeModel , ClusterModel , DatatypeModel , FabricIndex , MatterModel } from "#model" ;
19
+ import { Fabric , Message , NoAssociatedFabricError , SecureSession , Session , assertSecureSession } from "#protocol" ;
18
20
import {
19
21
Attribute ,
20
22
AttributeId ,
@@ -29,11 +31,6 @@ import {
29
31
TypeFromPartialBitSchema ,
30
32
ValidationError ,
31
33
} from "#types" ;
32
- import { Message } from "../../codec/MessageCodec.js" ;
33
- import { EndpointInterface } from "../../endpoint/EndpointInterface.js" ;
34
- import { Fabric } from "../../fabric/Fabric.js" ;
35
- import { NoAssociatedFabricError , SecureSession , assertSecureSession } from "../../session/SecureSession.js" ;
36
- import { Session } from "../../session/Session.js" ;
37
34
import { ClusterDatasource } from "./ClusterDatasource.js" ;
38
35
39
36
const logger = Logger . get ( "AttributeServer" ) ;
@@ -70,9 +67,9 @@ export function createAttributeServer<
70
67
attributeName : string ,
71
68
initValue : T ,
72
69
datasource : ClusterDatasource ,
73
- getter ?: ( session ?: Session , endpoint ?: EndpointInterface , isFabricFiltered ?: boolean , message ?: Message ) => T ,
74
- setter ?: ( value : T , session ?: Session , endpoint ?: EndpointInterface , message ?: Message ) => boolean ,
75
- validator ?: ( value : T , session ?: Session , endpoint ?: EndpointInterface ) => void ,
70
+ getter ?: ( session ?: Session , endpoint ?: Endpoint , isFabricFiltered ?: boolean , message ?: Message ) => T ,
71
+ setter ?: ( value : T , session ?: Session , endpoint ?: Endpoint , message ?: Message ) => boolean ,
72
+ validator ?: ( value : T , session ?: Session , endpoint ?: Endpoint ) => void ,
76
73
) {
77
74
const {
78
75
id,
@@ -150,7 +147,7 @@ export abstract class BaseAttributeServer<T> {
150
147
* The value is undefined when getter/setter are used. But we still handle the version number here.
151
148
*/
152
149
protected value : T | undefined = undefined ;
153
- protected endpoint ?: EndpointInterface ;
150
+ protected endpoint ?: Endpoint ;
154
151
readonly defaultValue : T ;
155
152
#readAcl: AccessLevel | undefined ;
156
153
#writeAcl: AccessLevel | undefined ;
@@ -203,7 +200,7 @@ export abstract class BaseAttributeServer<T> {
203
200
}
204
201
}
205
202
206
- assignToEndpoint ( endpoint : EndpointInterface ) {
203
+ assignToEndpoint ( endpoint : Endpoint ) {
207
204
this . endpoint = endpoint ;
208
205
}
209
206
@@ -230,7 +227,7 @@ export class FixedAttributeServer<T> extends BaseAttributeServer<T> {
230
227
readonly isFixed : boolean = true ;
231
228
protected readonly getter : (
232
229
session ?: Session ,
233
- endpoint ?: EndpointInterface ,
230
+ endpoint ?: Endpoint ,
234
231
isFabricFiltered ?: boolean ,
235
232
message ?: Message ,
236
233
) => T ;
@@ -256,7 +253,7 @@ export class FixedAttributeServer<T> extends BaseAttributeServer<T> {
256
253
* @param isFabricFiltered whether the read request is fabric scoped or not
257
254
* @param message the wire message that initiated the request (if any)
258
255
*/
259
- getter ?: ( session ?: Session , endpoint ?: EndpointInterface , isFabricFiltered ?: boolean , message ?: Message ) => T ,
256
+ getter ?: ( session ?: Session , endpoint ?: Endpoint , isFabricFiltered ?: boolean , message ?: Message ) => T ,
260
257
) {
261
258
super (
262
259
id ,
@@ -375,13 +372,8 @@ export class AttributeServer<T> extends FixedAttributeServer<T> {
375
372
override readonly isFixed = false ;
376
373
protected readonly valueChangeListeners = new Array < ( value : T , version : number ) => void > ( ) ;
377
374
protected readonly valueSetListeners = new Array < ( newValue : T , oldValue : T ) => void > ( ) ;
378
- protected readonly setter : (
379
- value : T ,
380
- session ?: Session ,
381
- endpoint ?: EndpointInterface ,
382
- message ?: Message ,
383
- ) => boolean ;
384
- protected readonly validator : ( value : T , session ?: Session , endpoint ?: EndpointInterface ) => void ;
375
+ protected readonly setter : ( value : T , session ?: Session , endpoint ?: Endpoint , message ?: Message ) => boolean ;
376
+ protected readonly validator : ( value : T , session ?: Session , endpoint ?: Endpoint ) => void ;
385
377
protected delayedChangeData ?: DelayedChangeData = undefined ;
386
378
387
379
constructor (
@@ -396,7 +388,7 @@ export class AttributeServer<T> extends FixedAttributeServer<T> {
396
388
initValue : T ,
397
389
defaultValue : T | undefined ,
398
390
datasource : ClusterDatasource ,
399
- getter ?: ( session ?: Session , endpoint ?: EndpointInterface , isFabricFiltered ?: boolean , message ?: Message ) => T ,
391
+ getter ?: ( session ?: Session , endpoint ?: Endpoint , isFabricFiltered ?: boolean , message ?: Message ) => T ,
400
392
401
393
/**
402
394
* Optional setter function to handle special requirements or the data are stored in different places. If a
@@ -408,7 +400,7 @@ export class AttributeServer<T> extends FixedAttributeServer<T> {
408
400
* @param endpoint the endpoint the cluster server of this attribute is assigned to.
409
401
* @returns true if the value has changed, false otherwise.
410
402
*/
411
- setter ?: ( value : T , session ?: Session , endpoint ?: EndpointInterface , message ?: Message ) => boolean ,
403
+ setter ?: ( value : T , session ?: Session , endpoint ?: Endpoint , message ?: Message ) => boolean ,
412
404
413
405
/**
414
406
* Optional Validator function to handle special requirements for verification of stored data. The method should
@@ -421,7 +413,7 @@ export class AttributeServer<T> extends FixedAttributeServer<T> {
421
413
* @param session the session that is requesting the value (if any).
422
414
* @param endpoint the endpoint the cluster server of this attribute is assigned to.
423
415
*/
424
- validator ?: ( value : T , session ?: Session , endpoint ?: EndpointInterface ) => void ,
416
+ validator ?: ( value : T , session ?: Session , endpoint ?: Endpoint ) => void ,
425
417
) {
426
418
if (
427
419
isWritable &&
@@ -746,9 +738,9 @@ export class FabricScopedAttributeServer<T> extends AttributeServer<T> {
746
738
defaultValue : T | undefined ,
747
739
readonly cluster : Cluster < any , any , any , any , any > ,
748
740
datasource : ClusterDatasource ,
749
- getter ?: ( session ?: Session , endpoint ?: EndpointInterface , isFabricFiltered ?: boolean ) => T ,
750
- setter ?: ( value : T , session ?: Session , endpoint ?: EndpointInterface , message ?: Message ) => boolean ,
751
- validator ?: ( value : T , session ?: Session , endpoint ?: EndpointInterface ) => void ,
741
+ getter ?: ( session ?: Session , endpoint ?: Endpoint , isFabricFiltered ?: boolean ) => T ,
742
+ setter ?: ( value : T , session ?: Session , endpoint ?: Endpoint , message ?: Message ) => boolean ,
743
+ validator ?: ( value : T , session ?: Session , endpoint ?: Endpoint ) => void ,
752
744
) {
753
745
if (
754
746
isWritable &&
0 commit comments