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

요약

상속

상속 출처: <ph type="x-smartling-placeholder">
</ph>   nl::Weave::Profiles::DataManagement_Current::TraitDataSink <ph type="x-smartling-placeholder">
</ph>   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 콜백을 수신합니다. 수정은 조건부일 수도 있고 아닐 수도 있습니다. 게시자 또는 다른 클라이언트에 의해 변경되었기 때문에 트레잇 인스턴스의 로컬 사본이 게시자의 로컬 사본과 더 이상 동기화되지 않으면 조건부 데이터 업데이트가 손실됩니다. 조건부 변형과 비조건부 변형은 동일한 트레잇 인스턴스에서 동시에 지원되지 않습니다.

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

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

잠금 해제

void Unlock(
  SubscriptionClient *apSubClient
)