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

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

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

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

요약

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

상속

직접 알려진 서브클래스: <ph type="x-smartling-placeholder">
</ph>   nl::Weave::Profiles::DataManagement_Legacy::DMClient <ph type="x-smartling-placeholder">
</ph>   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를 반환합니다.
참고 항목: <ph type="x-smartling-placeholder">
</ph> WeaveTransportOption <ph type="x-smartling-placeholder">
</ph>

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를 전달합니다. 실제로 이 메서드는 가상 void이므로 모든 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)

~ProtocolEngine

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
)