nl::Weave::WeaveExchangeManager

#include <src/lib/core/WeaveExchangeMgr.h>

이 클래스는 다른 Weave 노드로 ExchangeContexts를 관리하는 데 사용됩니다.

요약

상위 계층을 대신하여 ExchangeContext를 만들고 요청하지 않은 메시지 핸들러의 등록/등록 취소를 처리합니다.

생성자 및 소멸자

WeaveExchangeManager(void)
WeaveExchangeManager 클래스의 생성자입니다.

공개 유형

State{
  kState_NotInitialized = 0,
  kState_Initialized = 1
}
enum

공개 속성

FabricState
[읽기 전용] 연결된 FabricState 객체입니다.
MessageLayer
[읽기 전용] 연결된 WeaveMessageLayer 객체입니다.
State
uint8_t
[읽기 전용] WeaveExchangeManager 객체의 상태입니다.

공개 함수

AllowUnsolicitedMessages(WeaveConnection *con)
void
지정된 연결에서 요청하지 않은 메시지를 수신하도록 허용합니다.
ClearMsgCounterSyncReq(uint64_t peerNodeId)
void
해당 피어에 대기 중인 모든 메시지에 대한 MsgCounterSyncReq 플래그를 삭제합니다.
FindContext(uint64_t peerNodeId, WeaveConnection *con, void *appState, bool isInitiator)
특정 매개변수 집합과 일치하는 풀에서 ExchangeContext를 찾습니다.
Init(WeaveMessageLayer *msgLayer)
WeaveExchangeManager 객체를 초기화합니다.
NewBinding(Binding::EventCallback eventCallback, void *appState)
제공된 인수를 사용하여 새 Binding을 할당합니다.
NewContext(const uint64_t & peerNodeId, void *appState)
피어 노드 식별자로 지정된 지정된 피어 Weave 노드를 사용하여 새 ExchangeContext를 생성합니다.
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, void *appState)
피어 노드 식별자와 피어 IP 주소로 지정된 지정된 피어 Weave 노드를 사용하여 새 ExchangeContext를 생성합니다.
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId sendIntfId, void *appState)
지정된 인터페이스의 피어 노드 식별자, 피어 IP 주소, 대상 포트로 지정된 지정된 피어 Weave 노드를 사용하여 새 ExchangeContext를 생성합니다.
NewContext(WeaveConnection *con, void *appState)
지정된 WeaveConnection에 대해 지정된 피어 Weave 노드를 사용하여 새 ExchangeContext를 생성합니다.
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, void *appState)
지정된 프로필 식별자에 대해 요청하지 않은 메시지 핸들러를 등록합니다.
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
지정된 프로필 식별자에 대해 요청하지 않은 메시지 핸들러를 등록합니다.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, void *appState)
주어진 프로필 식별자와 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록합니다.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
주어진 프로필 식별자와 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록합니다.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, void *appState)
지정된 Weave 연결에서 주어진 프로필 식별자, 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록합니다.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
지정된 Weave 연결에서 주어진 프로필 식별자, 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록합니다.
Shutdown(void)
WeaveExchangeManager를 종료합니다.
UnregisterUnsolicitedMessageHandler(uint32_t profileId)
지정된 프로필 식별자에 대해 요청하지 않은 메시지 핸들러를 등록 취소합니다.
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType)
지정된 프로필 식별자 및 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록 취소합니다.
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con)
주어진 프로필 식별자, 메시지 유형 및 Weave 연결에 대해 요청하지 않은 메시지 핸들러를 등록 취소합니다.

공개 유형

 State
속성
kState_Initialized

WeaveExchangeManager가 초기화되었음을 나타내는 데 사용됩니다.

kState_NotInitialized

WeaveExchangeManager가 초기화되지 않았음을 나타내는 데 사용됩니다.

공개 속성

FabricState

WeaveFabricState * FabricState

[읽기 전용] 연결된 FabricState 객체입니다.

MessageLayer

WeaveMessageLayer * MessageLayer

[읽기 전용] 연결된 WeaveMessageLayer 객체입니다.

uint8_t State

[읽기 전용] WeaveExchangeManager 객체의 상태입니다.

공개 함수

AllowUnsolicitedMessages

void AllowUnsolicitedMessages(
  WeaveConnection *con
)

지정된 연결에서 요청하지 않은 메시지를 수신하도록 허용합니다.

이 메서드는 지정된 Weave 연결에서 메시지 수신 핸들러를 설정합니다.

세부정보
매개변수
[in] con
Weave 연결 객체에 대한 포인터입니다.

ClearMsgCounterSyncReq

void ClearMsgCounterSyncReq(
  uint64_t peerNodeId
)

해당 피어에 대기 중인 모든 메시지에 대한 MsgCounterSyncReq 플래그를 삭제합니다.

세부정보
매개변수
[in] peerNodeId
대상 노드의 노드 ID입니다.

FindContext

ExchangeContext * FindContext(
  uint64_t peerNodeId,
  WeaveConnection *con,
  void *appState,
  bool isInitiator
)

특정 매개변수 집합과 일치하는 풀에서 ExchangeContext를 찾습니다.

세부정보
매개변수
[in] peerNodeId
ExchangeContext가 설정된 피어의 노드 식별자입니다.
[in] con
피어와의 TCP 연결을 나타내는 WeaveConnection 객체에 대한 포인터입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
[in] isInitiator
로컬 노드가 교환의 개시자인지 여부를 나타내는 부울 표시기입니다.
반환
제공된 매개변수와 일치하는 ExchangeContext 개체에 대한 포인터입니다. 성공 시, 일치 시 NULL입니다.

Init

WEAVE_ERROR Init(
  WeaveMessageLayer *msgLayer
)

WeaveExchangeManager 객체를 초기화합니다.

이 인스턴스의 수명 내에 이 메서드는 객체 생성 후 Shutdown을 호출하여 인스턴스를 종료할 때까지 한 번 호출됩니다.

세부정보
매개변수
[in] msgLayer
WeaveMessageLayer 객체에 대한 포인터입니다.
반환 값
WEAVE_ERROR_INCORRECT_STATE
상태가 kState_NotInitialized와 같지 않은 경우
WEAVE_NO_ERROR
성공 시

NewBinding

Binding * NewBinding(
  Binding::EventCallback eventCallback,
  void *appState
)

제공된 인수를 사용하여 새 Binding을 할당합니다.

세부정보
매개변수
[in] eventCallback
이벤트 콜백에 사용할 함수 포인터
[in] appState
나중에 이벤트 콜백에서 전달될 컨텍스트에 대한 포인터
반환
새로 할당된 Binding을 가리키는 포인터 또는 풀이 소진된 경우 NULL

NewContext

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  void *appState
)

피어 노드 식별자로 지정된 지정된 피어 Weave 노드를 사용하여 새 ExchangeContext를 생성합니다.

세부정보
매개변수
[in] peerNodeId
ExchangeContext를 설정하는 피어의 노드 식별자입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환
성공 시 생성된 ExchangeContext 개체를 가리키는 포인터입니다. 그렇지 않고 할당할 수 있거나 사용할 수 있는 객체가 없는 경우 NULL입니다.

NewContext

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  const IPAddress & peerAddr,
  void *appState
)

피어 노드 식별자와 피어 IP 주소로 지정된 지정된 피어 Weave 노드를 사용하여 새 ExchangeContext를 생성합니다.

세부정보
매개변수
[in] peerNodeId
ExchangeContext를 설정하는 피어의 노드 식별자입니다.
[in] peerAddr
피어 노드의 IP 주소입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환
성공 시 생성된 ExchangeContext 개체를 가리키는 포인터입니다. 그렇지 않은 경우 할당할 수 있거나 사용할 수 있는 객체가 없는 경우 NULL입니다.

NewContext

ExchangeContext * NewContext(
  const uint64_t & peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId sendIntfId,
  void *appState
)

지정된 인터페이스의 피어 노드 식별자, 피어 IP 주소, 대상 포트로 지정된 지정된 피어 Weave 노드를 사용하여 새 ExchangeContext를 생성합니다.

세부정보
매개변수
[in] peerNodeId
ExchangeContext를 설정하는 피어의 노드 식별자입니다.
[in] peerAddr
피어 노드의 IP 주소입니다.
[in] peerPort
피어 노드의 포트입니다.
[in] sendIntfId
이 교환에서 Weave 메시지를 보내는 데 사용하는 인터페이스입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환
성공 시 생성된 ExchangeContext 개체를 가리키는 포인터입니다. 그렇지 않은 경우 할당할 수 있거나 사용할 수 있는 객체가 없는 경우 NULL입니다.

NewContext

ExchangeContext * NewContext(
  WeaveConnection *con,
  void *appState
)

지정된 WeaveConnection에 대해 지정된 피어 Weave 노드를 사용하여 새 ExchangeContext를 생성합니다.

세부정보
매개변수
[in] con
피어와의 TCP 연결을 나타내는 WeaveConnection 객체에 대한 포인터입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환
성공 시 생성된 ExchangeContext 개체를 가리키는 포인터입니다. 그렇지 않은 경우 할당할 수 있거나 사용할 수 있는 객체가 없는 경우 NULL입니다.

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

지정된 프로필 식별자에 대해 요청하지 않은 메시지 핸들러를 등록합니다.

이 핸들러는 지정된 프로필의 모든 메시지에 대해 호출됩니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] handler
요청하지 않은 메시지 핸들러입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환 값
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
요청하지 않은 메시지 핸들러 풀이 가득 차서 새 풀을 할당할 수 없는 경우
WEAVE_NO_ERROR
성공 시

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

지정된 프로필 식별자에 대해 요청하지 않은 메시지 핸들러를 등록합니다.

이 핸들러는 지정된 프로필의 모든 메시지에 대해 호출됩니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] handler
요청하지 않은 메시지 핸들러입니다.
[in] allowDups
지정된 프로필에 중복 메시지가 허용되는지 여부를 나타내는 부울 표시기입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환 값
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
요청하지 않은 메시지 핸들러 풀이 가득 차서 새 풀을 할당할 수 없는 경우
WEAVE_NO_ERROR
성공 시

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

주어진 프로필 식별자와 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록합니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] handler
요청하지 않은 메시지 핸들러입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환 값
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
요청하지 않은 메시지 핸들러 풀이 가득 차서 새 풀을 할당할 수 없는 경우
WEAVE_NO_ERROR
성공 시

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

주어진 프로필 식별자와 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록합니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] handler
요청하지 않은 메시지 핸들러입니다.
[in] allowDups
지정된 프로필 식별자 및 메시지 유형에 중복 메시지가 허용되는지 여부를 나타내는 부울 표시기입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환 값
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
요청하지 않은 메시지 핸들러 풀이 가득 차서 새 풀을 할당할 수 없는 경우
WEAVE_NO_ERROR
성공 시

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con,
  ExchangeContext::MessageReceiveFunct handler,
  void *appState
)

지정된 Weave 연결에서 주어진 프로필 식별자, 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록합니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] con
피어와의 TCP 연결을 나타내는 WeaveConnection 객체에 대한 포인터입니다.
[in] handler
요청하지 않은 메시지 핸들러입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환 값
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
요청하지 않은 메시지 핸들러 풀이 가득 차서 새 풀을 할당할 수 없는 경우
WEAVE_NO_ERROR
성공 시

RegisterUnsolicitedMessageHandler

WEAVE_ERROR RegisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con,
  ExchangeContext::MessageReceiveFunct handler,
  bool allowDups,
  void *appState
)

지정된 Weave 연결에서 주어진 프로필 식별자, 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록합니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] con
피어와의 TCP 연결을 나타내는 WeaveConnection 객체에 대한 포인터입니다.
[in] handler
요청하지 않은 메시지 핸들러입니다.
[in] allowDups
지정된 프로필 식별자에 대해 중복 메시지가 허용되는지 여부를 나타내는 부울 표시기이며, 지정된 Weave 연결의 메시지 유형입니다.
[in] appState
컨텍스트 상태를 보유한 상위 레이어 객체를 가리키는 포인터입니다.
반환 값
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
요청하지 않은 메시지 핸들러 풀이 가득 차서 새 풀을 할당할 수 없는 경우
WEAVE_NO_ERROR
성공 시

종료

WEAVE_ERROR Shutdown(
  void
)

WeaveExchangeManager를 종료합니다.

그러면 객체의 이 인스턴스가 종료되고 보유한 모든 리소스가 해제됩니다.

세부정보
반환
WEAVE_NO_ERROR를 무조건적으로 반환합니다.

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId
)

지정된 프로필 식별자에 대해 요청하지 않은 메시지 핸들러를 등록 취소합니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
반환 값
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
일치하는 요청하지 않은 메시지 핸들러를 찾을 수 없는 경우
WEAVE_NO_ERROR
성공 시

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType
)

지정된 프로필 식별자 및 메시지 유형에 대해 요청하지 않은 메시지 핸들러를 등록 취소합니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
반환 값
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
일치하는 요청하지 않은 메시지 핸들러를 찾을 수 없는 경우
WEAVE_NO_ERROR
성공 시

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType,
  WeaveConnection *con
)

주어진 프로필 식별자, 메시지 유형 및 Weave 연결에 대해 요청하지 않은 메시지 핸들러를 등록 취소합니다.

세부정보
매개변수
[in] profileId
수신된 메시지의 프로필 식별자입니다.
[in] msgType
해당 프로필의 메시지 유형입니다.
[in] con
피어와의 TCP 연결을 나타내는 WeaveConnection 객체에 대한 포인터입니다.
반환 값
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
일치하는 요청하지 않은 메시지 핸들러를 찾을 수 없는 경우
WEAVE_NO_ERROR
성공 시

WeaveExchangeManager

 WeaveExchangeManager(
  void
)

WeaveExchangeManager 클래스의 생성자입니다.

상태를 kState_NotInitialized로 설정합니다.