nl::Weave::WeaveExchangeManager

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

이 클래스는 다른 Weave 노드와 함께 ExchangeContext를 관리하는 데 사용됩니다.

요약

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

생성자 및 소멸자

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로 설정합니다.