nl::Weave::Profiles::DataManagement_Current::TraitUpdatableDataSink

요약

상속

상속 대상:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

생성자 및 소멸자

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

공개 함수

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
노드의 경로 핸들, TLV 작성기, 값이 null인지 여부를 나타내는 불리언이 주어지면 알림을 빌드하는 트레잇 소스에서 데이터를 가져옵니다.
GetSubscriptionClient() __OVERRIDE
virtual SubscriptionClient *
GetUpdateEncoder() __OVERRIDE
virtual UpdateEncoder *
IsUpdatableDataSink(void) __OVERRIDE
virtual bool
Lock(SubscriptionClient *apSubClient)
void
ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom)
SetSubscriptionClient(SubscriptionClient *apSubClient) __OVERRIDE
virtual WEAVE_ERROR
SetUpdateEncoder(UpdateEncoder *apEncoder) __OVERRIDE
virtual WEAVE_ERROR
SetUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle, bool aIsConditional)
지정된 PropertyPathHandle에 로컬 수정사항이 있다고 선언합니다.
Unlock(SubscriptionClient *apSubClient)
void

공개 함수

ClearUpdated

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

GetData

virtual WEAVE_ERROR GetData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  bool & aIsNull,
  bool & aIsPresent
) __OVERRIDE

노드의 경로 핸들, TLV 작성기, 값이 null인지 여부를 나타내는 불리언이 주어지면 알림을 빌드하는 트레잇 소스에서 데이터를 가져옵니다.

경로 핸들이 리프 노드가 아닌 경우 TDM은 작성기에 값 쓰기 (예: 컨테이너 열기, 구조체 무효화)를 처리합니다. 리프가 아닌 노드가 null이거나 없는 경우 TDM은 하위 노드에 대해 GetData를 호출하지 않습니다.

이 함수는 null 허용, 선택, 임시 또는 리프인 핸들에 대해서만 호출됩니다. 이러한 옵션이 사용 설정된 핸들이 있는 모든 트레잇은 aIsNull 및 aIsPresent를 채우는 적절한 로직을 구현할 것으로 예상됩니다.

세부정보
매개변수
[in] aHandle
문제의 PropertyPathHandle.
[in] aTagToWrite
aHandle에 작성할 태그입니다.
[in,out] aWriter
TLV 요소를 쓸 작성자입니다.
[out] aIsNull
aHandle은 무효화되나요? 만약 그렇다면 TDM은 null 요소를 작성합니다. aHandle이 리프가 아닌 경우 TDM은 하위 요소를 건너뜁니다.
[out] aIsPresent
aHandle이 있나요? '아니요'인 경우 aHandle이 리프가 아니면 TDM은 경로와 그 하위 요소를 건너뜁니다.
반환 값
WEAVE_NO_ERROR
성공 시
other
데이터를 검색하여 작성기에 쓸 수 없습니다.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

자물쇠

void Lock(
  SubscriptionClient *apSubClient
)

ReadData

WEAVE_ERROR ReadData(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  TLV::TLVWriter & aWriter,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
)

SetSubscriptionClient

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

SetUpdateEncoder

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

SetUpdated

WEAVE_ERROR SetUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

지정된 PropertyPathHandle에 로컬 수정사항이 있다고 선언합니다.

업데이트 요청이 처리될 때까지 NotificationEngine은 핸들과 하위 요소를 재정의하지 않습니다. 애플리케이션은 이 핸들 또는 상위 항목에 대한 kEvent_OnUpdateComplete 콜백을 업데이트 작업 결과와 함께 수신합니다. 수정은 조건부일 수도 있고 없을 수도 있습니다. 게시자 자체 또는 다른 클라이언트에 의해 변형되었으므로 trait 인스턴스의 로컬 사본이 게시자의 로컬 사본이 더 이상 동기화되지 않는 경우 조건부 데이터 업데이트가 손실됩니다. 조건부 변형과 비조건부 변형은 동일한 trait 인스턴스에서 동시에 지원되지 않습니다.

세부정보
매개변수
[in] apSubClient
이 싱크를 관리하는 SubscriptionClient에 대한 포인터입니다.
[in] aPropertyHandle
이 Trait 인스턴스의 유효한 모든 PropertyPathHandle.
[in] aIsConditional
조건부 업데이트의 경우 true, 그렇지 않은 경우 false입니다.
반환 값
WEAVE_NO_ERROR
속성 핸들이 속성 집합에 추가되어 trait 소유자에게 전송됩니다.
WEAVE_ERROR_INVALID_ARGUMENT
핸들 또는 SubscriptionClient 포인터가 유효하지 않은 경우.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
trait 인스턴스가 이미 반대 조건으로 업데이트되고 있는 경우입니다.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
aIsConditional이 true이지만 trait 인스턴스에 유효한 버전이 없는 경우.
WEAVE_ERROR_WDM_PATH_STORE_FULL
를 반환합니다.
Other
WEAVE_ERROR 코드를 반환합니다.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

잠금 해제

void Unlock(
  SubscriptionClient *apSubClient
)