nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine

이것이 추상 클래스입니다.

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

WDM 프로토콜 엔진 클래스입니다.

요약

데이터 관리 개체인 클라이언트 또는 게시자에는 프로토콜 엔진 구성요소와 데이터 관리자 구성요소가 있습니다. 이 추상 클래스는 프로토콜 엔진의 일반적인 기능을 나타냅니다.

상속

알려진 직접 서브클래스:
  nl::Weave::Profiles::DataManagement_Legacy::DMClient
  nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

생성자 및 소멸자

ProtocolEngine(void)
~ProtocolEngine(void)

보호된 속성

mBindingTable[kBindingTableSize]
ProtocolEngine에는 엔진이 단순히 브로드캐스트 알림 수신 이외의 작업을 담당한다면 하나 이상의 항목을 포함해야 하는 결합 테이블이 있습니다.
mExchangeMgr
mResponseTimeout
uint32_t
mTransactionTable[kTransactionTableSize]

공개 함수

BindConfirm(Binding *aBinding)
virtual WEAVE_ERROR
바인딩 요청이 성공적으로 완료되었다는 확인을 처리합니다.
BindConfirm(Binding *aBinding, StatusReport & aReport)
virtual WEAVE_ERROR
바인딩 요청이 실패했다는 확인을 처리합니다.
BindRequest(const uint64_t & aPeerNodeId, uint8_t aTransport)
알려진 피어 노드 ID 및 전송 지정자를 사용하여 바인딩을 요청합니다.
BindRequest(const uint64_t & aPeerNodeId)
기본 전송을 사용하여 알려진 피어에 바인딩합니다.
BindRequest(nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
BindRequest(WeaveConnection *aConnection)
활성 Weave 연결을 사용하여 바인딩을 요청합니다.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
바인딩이 실패했다는 표시를 처리합니다.
IncompleteIndication(const uint64_t & aPeerNodeId, StatusReport & aReport)=0
virtual void
바인딩이 불완전해졌다는 표시를 처리합니다.
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
UnbindRequest(const uint64_t & aPeerNodeId)
void
결합을 실행취소하고 결합 테이블에서 삭제하도록 요청합니다.
UnbindRequest(const uint64_t & aPeerNodeId, WEAVE_ERROR aErr)
void
결합을 실행취소하고 결합 테이블에서 삭제하도록 요청합니다.

보호된 함수

Clear(void)
void
ClearBindingTable(void)
void
ClearTransactionTable(void)
void
DequeueTransaction(DMTransaction *aTransaction)
void
EnqueueTransaction(DMTransaction *aTransaction, Binding *aBinding)
EnqueueTransaction(DMTransaction *aTransaction)
FailTransactions(Binding *aBinding, StatusReport & aReport)
bool
Finalize(void)
virtual void
FinalizeBindingTable(void)
void
FinalizeTransactionTable(void)
void
FinalizeTransactions(Binding *aBinding)
void
FromExchangeCtx(ExchangeContext *aExchangeCtx)
GetBinding(const uint64_t & aPeerNodeId)
NewBinding(void)
StartTransaction(DMTransaction *aTransaction, Binding *aBinding)
StartTransaction(DMTransaction *aTransaction)
StatusResponse(ExchangeContext *aExchangeCtx, StatusReport & aStatus)

클래스

nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine::DMTransaction

보호된 속성

mBindingTable

Binding mBindingTable[kBindingTableSize]

ProtocolEngine에는 엔진이 단순히 브로드캐스트 알림 수신 이외의 작업을 담당한다면 하나 이상의 항목을 포함해야 하는 결합 테이블이 있습니다.

바인딩은 일반적으로 노드 ID로 색인이 생성됩니다. 즉, 각 엔진은 특정 서비스 엔드포인트에 하나의 바인딩만 가질 수 있습니다.

WDM 사양에는 명시적 대상이 제공되지 않을 경우 메시지가 전달되는 위치인 '기본 바인딩'이라는 개념이 있습니다. 이는 대부분 단일 결합 또는 소수의 결합을 갖는 매우 간단한 기기에서 사용되며, 다른 목적으로는 가장 먼저 형성되는 결합이 됩니다.

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mResponseTimeout

uint32_t mResponseTimeout

mTransactionTable

TransactionTableEntry mTransactionTable[kTransactionTableSize]

공개 함수

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding
)

바인딩 요청이 성공적으로 완료되었다는 확인을 처리합니다.

결합이 완료되면 프로토콜 엔진이 트랜잭션 테이블을 살펴보고 해당 결합에 종속된 모든 트랜잭션을 시작합니다.

세부정보
매개변수
[in] aBinding
완료된 결합을 가리키는 포인터입니다.
반환
성공 시 WEAVE_NO_ERROR 그 외의 경우에는 트랜잭션을 시작할 수 없음을 반영하는 WEAVE_ERROR를 반환합니다.

BindConfirm

virtual WEAVE_ERROR BindConfirm(
  Binding *aBinding,
  StatusReport & aReport
)

바인딩 요청이 실패했다는 확인을 처리합니다.

바인딩 요청이 실패하면 프로토콜 엔진이 트랜잭션 테이블을 탐색하고 바인딩에 따라 모든 트랜잭션에 실패해야 합니다.

세부정보
매개변수
[in] aBinding
실패한 바인딩을 가리키는 포인터입니다.
[in] aReport
실패 이유를 자세히 설명하는 StatusReport 객체에 대한 참조입니다.
반환

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId,
  uint8_t aTransport
)

알려진 피어 노드 ID 및 전송 지정자를 사용하여 바인딩을 요청합니다.

이 요청은 피어 노드 ID와 전송 사양을 지정하면 해당 피어에 대한 바인딩을 설정합니다. 전송이 TCP인 경우에만 입찰 시 추가 완료가 필요합니다. 피어에 대한 바인딩이 이미 있는 경우 다시 사용됩니다.

세부정보
매개변수
[in] aPeerNodeId
바인딩 타겟인 피어 항목의 64비트 노드 ID에 대한 참조입니다.
[in] aTransport
사용할 전송입니다.
반환
성공 시 WEAVE_NO_ERROR, 결합 테이블이 꽉 찬 경우 WEAVE_ERROR_NO_MEMORY 그 외의 경우에는 결합 초기화 실패를 반영하는 WEAVE_ERROR를 반환합니다.
참고 항목:
WeaveTransportOption

BindRequest

WEAVE_ERROR BindRequest(
  const uint64_t & aPeerNodeId
)

기본 전송을 사용하여 알려진 피어에 바인딩합니다.

세부정보
매개변수
[in] aPeerNodeId
바인딩 타겟인 피어 항목의 64비트 노드 ID에 대한 참조입니다.
반환
성공 시 WEAVE_NO_ERROR 그 외의 경우에는 바인드 작업의 실패를 반영하는 WEAVE_ERROR를 반환합니다.

BindRequest

WEAVE_ERROR BindRequest(
  nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager *aServiceMgr,
  WeaveAuthMode aAuthMode
)

BindRequest

WEAVE_ERROR BindRequest(
  WeaveConnection *aConnection
)

활성 Weave 연결을 사용하여 바인딩을 요청합니다.

기존의 개방형 연결을 사용하여 바인딩을 설정할 수도 있습니다. 이러한 방식으로 설정된 바인딩에는 추가 완료가 필요하지 않습니다.

세부정보
매개변수
[in] aConnection
결합에 사용할 Weave 연결에 대한 포인터입니다.
반환
성공 시 WEAVE_NO_ERROR, 결합 테이블이 꽉 찬 경우 WEAVE_ERROR_NO_MEMORY 그 외의 경우에는 바인딩 초기화 실패를 반영하는 오류를 반환합니다.

IncompleteIndication

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

바인딩이 실패했다는 표시를 처리합니다.

바인딩이 불완전해지면, 즉 TCP 바인딩에 대한 연결이 종료되면 프로토콜 엔진은 바인딩에 의존하는 모든 트랜잭션에 실패해야 합니다(상태 핸들러 호출 포함). 또한 불완전한 표시는 피어 ID를 취하는 이 메서드의 대체 형식을 구현하는 슈퍼클래스 객체로 전달됩니다.

세부정보
매개변수
[in] aBinding
실패한 바인딩을 가리키는 포인터입니다.
[in] aReport
실패 이유를 자세히 설명하는 StatusReport 객체에 대한 참조입니다.

IncompleteIndication

virtual void IncompleteIndication(
  const uint64_t & aPeerNodeId,
  StatusReport & aReport
)=0

바인딩이 불완전해졌다는 표시를 처리합니다.

바인딩 실패를 알리려는 상위 계층은 이 메서드를 사용해야 합니다. 이 메서드는 단순히 상태 보고서와 함께 피어 ID를 전달합니다. 실제로 이 메서드는 가상 무효이므로 모든 DMClient 또는 DMPublisher 서브클래스에서 구현을 제공해야 합니다.

세부정보
매개변수
[in] aPeerNodeId
실패한 바인딩의 대상인 피어 노드 또는 서비스 엔드포인트의 64비트 ID에 대한 참조입니다.
[in] aReport
실패 이유를 자세히 설명하는 StatusReport 객체에 대한 참조입니다.

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

ProtocolEngine

 ProtocolEngine(
  void
)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId
)

결합을 실행취소하고 결합 테이블에서 삭제하도록 요청합니다.

바인딩이 '바인딩 해제'되면 현재 바인딩에 종속된 모든 트랜잭션도 삭제해야 합니다. 이 메서드는 이 바인딩이 있는 모든 트랜잭션을 자동으로 완료합니다.

세부정보
매개변수
[in] aPeerNodeId
바인딩을 식별하는 64비트 노드 ID 또는 서비스 엔드포인트에 대한 참조입니다.
참고:
UnbindRequest(const uint64_t, WEAVE_ERROR)

UnbindRequest

void UnbindRequest(
  const uint64_t & aPeerNodeId,
  WEAVE_ERROR aErr
)

결합을 실행취소하고 결합 테이블에서 삭제하도록 요청합니다.

바인딩이 '바인딩 해제'되면 현재 바인딩에 종속된 모든 트랜잭션도 삭제해야 합니다. 이 메서드는 이 바인딩이 있는 모든 트랜잭션을 자동으로 완료합니다.

세부정보
매개변수
[in] aPeerNodeId
바인딩을 식별하는 64비트 노드 ID 또는 서비스 엔드포인트에 대한 참조입니다.
[in] aErr
바인딩 해제 요청에 특별한 이유가 없는 경우 WEAVE_NO_ERROR를 반환하고 그렇지 않으면 오류의 원인이 전달됩니다.
참고 항목:
UnbindRequest(const uint64_t)

프로토콜 엔진

virtual  ~ProtocolEngine(
  void
)

보호된 함수

지우기

void Clear(
  void
)

ClearBindingTable

void ClearBindingTable(
  void
)

ClearTransactionTable

void ClearTransactionTable(
  void
)

DequeueTransaction

void DequeueTransaction(
  DMTransaction *aTransaction
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

EnqueueTransaction

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction
)

FailTransactions

bool FailTransactions(
  Binding *aBinding,
  StatusReport & aReport
)

완료

virtual void Finalize(
  void
)

FinalizeBindingTable

void FinalizeBindingTable(
  void
)

FinalizeTransactionTable

void FinalizeTransactionTable(
  void
)

FinalizeTransactions

void FinalizeTransactions(
  Binding *aBinding
)

FromExchangeCtx

Binding * FromExchangeCtx(
  ExchangeContext *aExchangeCtx
)

GetBinding

Binding * GetBinding(
  const uint64_t & aPeerNodeId
)

NewBinding

Binding * NewBinding(
  void
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

StartTransaction

WEAVE_ERROR StartTransaction(
  DMTransaction *aTransaction
)

StatusResponse

WEAVE_ERROR StatusResponse(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)