nl :: 짜다:: 프로필 :: 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 :: 위브 :: 프로필 :: 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는 바인딩 테이블이 가득합니다. 그렇지 않으면 바인딩 초기화 실패를 반영하는 오류를 반환합니다.

불완전한 표시

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

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

바인딩이 불완전 해지면, 즉 TCP 바인딩에 대한 연결이 닫히면 프로토콜 엔진은 상태 핸들러 호출을 포함하여 이에 의존하는 모든 트랜잭션을 실패해야합니다. 또한 불완전한 표시는 피어 ID를 사용하는이 메소드의 대체 형식을 구현하는 수퍼 클래스 오브젝트로 전달됩니다.

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

불완전한 표시

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

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

바인딩 실패를 알리려는 상위 계층은 상태 보고서와 함께 피어 ID를 전달하는이 방법을 사용해야합니다. 이 방법은 가상 무효이기 때문에 사실, 어떤 DMClient 또는 DMPublisher 서브 클래스가 구현을 제공해야합니다.

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

초기화

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

초기화

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
)

대기열에 넣기 트랜잭션

WEAVE_ERROR EnqueueTransaction(
  DMTransaction *aTransaction,
  Binding *aBinding
)

대기열에 넣기 트랜잭션

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
)