nl::Weave::Profiles::DataManagement_Legacy::DMClient

#include <src/lib/profiles/data-management/Legacy/DMClient.h>

애플리케이션별 WDM 클라이언트의 기본 추상 클래스입니다.

요약

DMClient는 표준 WDM 클라이언트입니다. 구현은 구독/알림을 선택적으로 포함합니다. 커뮤니케이션 크랭크 터닝을 처리하는 DM ProtocolEngine 클래스와 완전히 추상적인 ClientDataManager 클래스를 혼합하여 상위 계층에서 이에 대해 걱정할 필요가 없도록 일부 구독 관련 메서드가 구현되어 있습니다.

구독 관련 작업의 핸들러는 주로 ClientNotifier 객체보다 씬 어댑터 역할을 합니다. 서브클래스 구현자는 관련 슈퍼클래스 메서드를 호출하여 구독 관리자 크랭크를 전환해야 합니다.

DMClient 요청 메서드에는 일반적으로 2개의 서명이 있습니다. 하나는 명시적 대상 노드 ID가 있는 서명이고 다른 하나는 지정된 대상이 있는 서명입니다. 두 경우 모두 게시자에게 메시지를 전송하는 기능은 클라이언트의 기존 결합에 따라 다르지만, 첫 번째 경우 대상 ID는 결합된 여러 대상 중에서 선택하기 위한 것이며, 두 번째 경우에는 결합 테이블의 첫 번째 항목이 기본값으로 선택됩니다. 이는 예를 들어 클라이언트가 단일 게시자에만 바인딩되는 경우에 유용합니다.

상속

상속 대상:
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::ClientDataManager

생성자 및 소멸자

DMClient(void)
DMClient 객체의 기본 생성자입니다.
~DMClient(void)
DMClient 객체의 소멸자입니다.
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
게시된 데이터 보기를 요청합니다.
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
기본 게시자의 데이터 보기를 요청합니다.
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
게시된 데이터의 업데이트를 요청합니다.
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
기본 게시자의 데이터 업데이트를 요청합니다.

보호된 속성

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

공개 함수

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
실행 중인 트랜잭션을 취소하도록 요청합니다.
Clear(void)
virtual void
DMClient 객체와 연결된 내부 상태를 삭제합니다.
Finalize(void)
virtual void
작동 중인 DMClient를 종료합니다.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
클라이언트에서 사용하는 바인딩의 '미완료'를 처리합니다.

보호된 함수

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

게시된 데이터 보기를 요청합니다.

지정된 원격 게시자가 상주하고 관리하는 데이터의 보기를 요청합니다.

세부정보
매개변수
[in] aDestinationId
원격 게시자의 64비트 노드 ID에 대한 참조입니다.
[in] aPathList
요청된 데이터를 나타내는 TLV로 인코딩된 경로 목록을 포함하는 ReferencedTLVData 객체에 대한 참조입니다.
[in] aTxnId
이 보기 작업을 관리하기 위해 설정된 WDM 거래의 식별자입니다.
[in] aTimeout
뷰 응답을 기다리는 최대 시간(밀리초)입니다.
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_NO_MEMORY
트랜잭션을 할당할 수 없는 경우
반환
그 외의 경우 트랜잭션 초기화 또는 시작 실패를 반영하는 WEAVE_ERROR입니다.

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

기본 게시자의 데이터 보기를 요청합니다.

'기본' 게시자(즉, 클라이언트의 결합 테이블의 첫 번째(또는 유일한) 게시자)에 있고 이 게시자가 관리하는 데이터의 뷰를 요청합니다.

세부정보
매개변수
[in] aPathList
요청된 데이터를 나타내는 TLV로 인코딩된 경로 목록을 포함하는 ReferencedTLVData 객체에 대한 참조입니다.
[in] aTxnId
이 보기 작업을 관리하기 위해 설정된 WDM 거래의 식별자입니다.
[in] aTimeout
뷰 응답을 기다리는 최대 시간(밀리초)입니다.
반환 값
WEAVE_NO_ERROR
성공 시
WEAVE_ERROR_NO_MEMORY
트랜잭션을 할당할 수 없는 경우
반환
그 외의 경우 트랜잭션 초기화 또는 시작 실패를 반영하는 WEAVE_ERROR입니다.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

게시된 데이터의 업데이트를 요청합니다.

원격 게시자에게 관리 중인 데이터를 업데이트해 달라고 요청합니다.

세부정보
매개변수
[in] aDestinationId
요청이 전송되는 원격 게시자의 64비트 노드 ID에 대한 참조입니다.
[in] aDataList
업데이트를 적용할 경로를 비롯하여 업데이트의 표현이 포함된 TLV로 인코딩된 데이터 목록이 포함된 ReferencedTLVData 객체에 대한 참조입니다.
[in] aTxnId
업데이트 요청을 관리하도록 설정된 트랜잭션의 식별자입니다.
[in] aTimeout
해당 상태 보고서를 기다리는 최대 시간(밀리초)입니다.
반환
성공 시 WEAVE_NO_ERROR 또는 업데이트 트랜잭션을 할당할 수 없는 경우 WEAVE_ERROR_NO_MEMORY입니다. 그렇지 않으면 업데이트 실패를 반영하는 WEAVE_ERROR를 반환합니다.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

기본 게시자의 데이터 업데이트를 요청합니다.

원격 게시자에게 관리 중인 데이터를 업데이트해 달라고 요청합니다. 이 버전은 클라이언트의 기본 바인딩 대상인 게시자에게 요청을 전달합니다.

세부정보
매개변수
[in] aDataList
업데이트를 적용할 경로를 비롯하여 업데이트의 표현이 포함된 TLV로 인코딩된 데이터 목록이 포함된 ReferencedTLVData 객체에 대한 참조입니다.
[in] aTxnId
업데이트 요청을 관리하도록 설정된 트랜잭션의 식별자입니다.
[in] aTimeout
해당 상태 보고서를 기다리는 최대 시간(밀리초)입니다.
반환
성공 시 WEAVE_NO_ERROR 또는 업데이트 트랜잭션을 할당할 수 없는 경우 WEAVE_ERROR_NO_MEMORY입니다. 그렇지 않으면 업데이트 실패를 반영하는 WEAVE_ERROR를 반환합니다.

보호된 속성

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

공개 함수

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

실행 중인 트랜잭션을 취소하도록 요청합니다.

이 메서드는 네트워크 트래픽을 생성하지 않고 지정된 트랜잭션에 할당된 리소스만 해제합니다.

세부정보
매개변수
[in] aTxnId
취소할 거래의 번호입니다. kTransactionIdNotSpecified가 제공되면 모든 거래가 취소됩니다.
[in] aError
거래를 취소할 때 보고할 WEAVE_ERROR입니다.
반환
성공 시 WEAVE_NO_ERROR 또는 트랜잭션 취소 실패를 나타내는 WEAVE_ERROR

지우기

virtual void Clear(
  void
)

DMClient 객체와 연결된 내부 상태를 삭제합니다.

특히 이 메서드는 모든 클라이언트 트랜잭션 풀을 지웁니다. 사용 중인 클라이언트의 경우 Finalize() 메서드를 사용하는 것이 좋습니다. 이 메서드가 구독을 취소하고 트랜잭션 및 바인딩 테이블을 정리하기 때문입니다.

참고 항목:
Finalize()

DMClient

 DMClient(
  void
)

DMClient 객체의 기본 생성자입니다.

모든 내부 상태를 지웁니다. DMClient를 사용하려면 Init()을 사용한 추가 초기화가 필요합니다.

완료

virtual void Finalize(
  void
)

작동 중인 DMClient를 종료합니다.

클라이언트와 관련된 모든 작동 상태를 지우고 알림 도구에서 모든 관련 구독을 삭제합니다. Finalize() 호출 후 단순히 Init()를 호출하여 DMClient를 다시 초기화할 수 있습니다. Finalize()DMClient 소멸자에 의해 호출되지만 DMClient에 정리가 필요한 경우(예: 실패 또는 임시 종료의 경우) 호출될 수 있지만 나중에 재구성해야 할 수도 있습니다.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

클라이언트에서 사용하는 바인딩의 '미완료'를 처리합니다.

바인딩과 관련된 연결이 닫히는 등 바인딩이 예기치 않게 실패하면 이 메서드가 호출됩니다.

세부정보
매개변수
[in] aBinding
불완전한 Binding을 가리키는 포인터입니다.
[in] aReport
실패 이유를 제공하는 상태 보고서에 대한 참조입니다.

~DMClient

virtual  ~DMClient(
  void
)

DMClient 객체의 소멸자입니다.

모든 내부 상태를 지우고 필요한 경우 대기 중인 구독을 취소합니다.

보호된 함수

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)