nl::Weave::WeaveExchangeManager

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

Diese Klasse wird verwendet, um ExchangeContexts mit anderen Weave-Knoten zu verwalten.

Zusammenfassung

Es arbeitet für höhere Ebenen, erstellt ExchangeContexts und verarbeitet die Registrierung bzw. Aufhebung der Registrierung unerwünschter Nachrichten-Handler.

Konstruktoren und Zerstörer

WeaveExchangeManager(void)
Konstruktor für die Klasse WeaveExchangeManager.

Öffentliche Typen

State{
  kState_NotInitialized = 0,
  kState_Initialized = 1
}
enum

Öffentliche Attribute

FabricState
[READ ONLY] Das zugehörige FabricState-Objekt.
MessageLayer
[READ ONLY] Das zugehörige WeaveMessageLayer-Objekt.
State
uint8_t
[READ ONLY] Der Status des Objekts WeaveExchangeManager.

Öffentliche Funktionen

AllowUnsolicitedMessages(WeaveConnection *con)
void
Lässt zu, dass unerwünschte Nachrichten über die angegebene Verbindung empfangen werden.
ClearMsgCounterSyncReq(uint64_t peerNodeId)
void
Löschen Sie das Flag „MsgCounterSyncReq“ für alle ausstehenden Nachrichten an diesen Peer.
FindContext(uint64_t peerNodeId, WeaveConnection *con, void *appState, bool isInitiator)
Ermitteln Sie den ExchangeContext aus einem Pool, der mit einem bestimmten Satz von Parametern übereinstimmt.
Init(WeaveMessageLayer *msgLayer)
Initialisieren Sie das WeaveExchangeManager-Objekt.
NewBinding(Binding::EventCallback eventCallback, void *appState)
Weisen Sie eine neue Binding mit den bereitgestellten Argumenten zu.
NewContext(const uint64_t & peerNodeId, void *appState)
Erstellt einen neuen ExchangeContext mit einem bestimmten Peer-Weave-Knoten, der durch die Peer-Knoten-ID angegeben wird.
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, void *appState)
Erstellt einen neuen ExchangeContext mit einem bestimmten Peer-Weave-Knoten, der durch die Peer-Knoten-ID und die Peer-IP-Adresse angegeben wird.
NewContext(const uint64_t & peerNodeId, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId sendIntfId, void *appState)
Erstellt einen neuen ExchangeContext mit einem bestimmten Peer-Weave-Knoten, der durch die Peer-Knoten-ID, die Peer-IP-Adresse und den Zielport auf einer bestimmten Schnittstelle angegeben wird.
NewContext(WeaveConnection *con, void *appState)
Erstellt einen neuen ExchangeContext mit einem bestimmten Peer-Weave-Knoten über eine angegebene WeaveConnection.
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, void *appState)
Registrieren Sie einen unerwünschten Nachrichten-Handler für eine bestimmte Profil-ID.
RegisterUnsolicitedMessageHandler(uint32_t profileId, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
Registrieren Sie einen unerwünschten Nachrichten-Handler für eine bestimmte Profil-ID.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, void *appState)
Registrieren Sie einen unerwünschten Nachrichten-Handler für eine bestimmte Profil-ID und einen bestimmten Nachrichtentyp.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
Registrieren Sie einen unerwünschten Nachrichten-Handler für eine bestimmte Profil-ID und einen bestimmten Nachrichtentyp.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, void *appState)
Registriert einen unerwünschten Nachrichten-Handler für eine bestimmte Profilkennung (Nachrichtentyp) in einer angegebenen Weave-Verbindung.
RegisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con, ExchangeContext::MessageReceiveFunct handler, bool allowDups, void *appState)
Registriert einen unerwünschten Nachrichten-Handler für eine bestimmte Profilkennung (Nachrichtentyp) in einer angegebenen Weave-Verbindung.
Shutdown(void)
Fahren Sie WeaveExchangeManager herunter.
UnregisterUnsolicitedMessageHandler(uint32_t profileId)
Hebt die Registrierung eines unerwünschten Nachrichten-Handlers für eine bestimmte Profil-ID auf.
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType)
Hebt die Registrierung eines unerwünschten Nachrichten-Handlers für eine bestimmte Profilkennung und einen bestimmten Nachrichtentyp auf.
UnregisterUnsolicitedMessageHandler(uint32_t profileId, uint8_t msgType, WeaveConnection *con)
Hebt die Registrierung eines unerwünschten Nachrichten-Handlers für eine bestimmte Profilkennung, einen bestimmten Nachrichtentyp und eine bestimmte Weave-Verbindung auf.

Öffentliche Typen

Status

 State
Attribute
kState_Initialized

Wird verwendet, um anzuzeigen, dass WeaveExchangeManager initialisiert wurde.

kState_NotInitialized

Wird verwendet, um anzuzeigen, dass der WeaveExchangeManager nicht initialisiert wurde.

Öffentliche Attribute

FabricState

WeaveFabricState * FabricState

[READ ONLY] Das zugehörige FabricState-Objekt.

MessageLayer

WeaveMessageLayer * MessageLayer

[READ ONLY] Das zugehörige WeaveMessageLayer-Objekt.

Status

uint8_t State

[READ ONLY] Der Status des Objekts WeaveExchangeManager.

Öffentliche Funktionen

AllowUnsolicitedMessages

void AllowUnsolicitedMessages(
  WeaveConnection *con
)

Lässt zu, dass unerwünschte Nachrichten über die angegebene Verbindung empfangen werden.

Diese Methode legt den Nachrichtenempfangs-Handler für die angegebene Weave-Verbindung fest.

Details
Parameter
[in] con
Ein Zeiger auf das Weave-Verbindungsobjekt.

ClearMsgCounterSyncReq

void ClearMsgCounterSyncReq(
  uint64_t peerNodeId
)

Löschen Sie das Flag „MsgCounterSyncReq“ für alle ausstehenden Nachrichten an diesen Peer.

Details
Parameter
[in] peerNodeId
Knoten-ID des Zielknotens.

FindContext

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

Ermitteln Sie den ExchangeContext aus einem Pool, der mit einem bestimmten Satz von Parametern übereinstimmt.

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, mit dem ExchangeContext eingerichtet wurde.
[in] con
Ein Zeiger auf das WeaveConnection-Objekt, das die TCP-Verbindung mit dem Peer darstellt.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
[in] isInitiator
Boolescher Indikator, der angibt, ob der lokale Knoten der Initiator des Austauschs ist.
Rückgabe
Ein Zeiger auf das ExchangeContext-Objekt, das mit den angegebenen Parametern übereinstimmt. Bei Erfolg, NULL, wenn keine Übereinstimmung vorliegt.

Init

WEAVE_ERROR Init(
  WeaveMessageLayer *msgLayer
)

Initialisieren Sie das WeaveExchangeManager-Objekt.

Innerhalb der Lebensdauer dieser Instanz wird diese Methode einmal nach der Objektkonstruktion aufgerufen, bis ein Aufruf von Shutdown erfolgt, um die Instanz zu beenden.

Details
Parameter
[in] msgLayer
Ein Zeiger auf das WeaveMessageLayer-Objekt.
Rückgabewerte
WEAVE_ERROR_INCORRECT_STATE
Wenn der Status ungleich kState_NotInitialized ist.
WEAVE_NO_ERROR
Bei Erfolg.

NewBinding

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

Weisen Sie eine neue Binding mit den bereitgestellten Argumenten zu.

Details
Parameter
[in] eventCallback
Funktionszeiger für den Ereignis-Callback
[in] appState
Ein Zeiger auf einen Kontext, der später in einem Ereignis-Callback ausgeführt wird
Rückgabe
Ein Zeiger auf die neu zugewiesene Binding oder NULL, wenn der Pool erschöpft ist

NewContext

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

Erstellt einen neuen ExchangeContext mit einem bestimmten Peer-Weave-Knoten, der durch die Peer-Knoten-ID angegeben wird.

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, mit dem ExchangeContext eingerichtet wird.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabe
Ein Zeiger auf das bei Erfolg erstellte ExchangeContext-Objekt. Andernfalls NULL, wenn kein Objekt zugewiesen werden kann oder verfügbar ist.

NewContext

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

Erstellt einen neuen ExchangeContext mit einem bestimmten Peer-Weave-Knoten, der durch die Peer-Knoten-ID und die Peer-IP-Adresse angegeben wird.

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, mit dem ExchangeContext eingerichtet wird.
[in] peerAddr
Die IP-Adresse des Peer-Knotens.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabe
Ein Zeiger auf das bei Erfolg erstellte ExchangeContext-Objekt. Andernfalls NULL, wenn kein Objekt zugewiesen werden kann oder verfügbar ist.

NewContext

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

Erstellt einen neuen ExchangeContext mit einem bestimmten Peer-Weave-Knoten, der durch die Peer-Knoten-ID, die Peer-IP-Adresse und den Zielport auf einer bestimmten Schnittstelle angegeben wird.

Details
Parameter
[in] peerNodeId
Die Knoten-ID des Peers, mit dem ExchangeContext eingerichtet wird.
[in] peerAddr
Die IP-Adresse des Peer-Knotens.
[in] peerPort
Der Port des Peer-Knotens.
[in] sendIntfId
Die Schnittstelle zum Senden von Weave-Nachrichten in diesem Austausch.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabe
Ein Zeiger auf das bei Erfolg erstellte ExchangeContext-Objekt. Andernfalls NULL, wenn kein Objekt zugewiesen werden kann oder verfügbar ist.

NewContext

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

Erstellt einen neuen ExchangeContext mit einem bestimmten Peer-Weave-Knoten über eine angegebene WeaveConnection.

Details
Parameter
[in] con
Ein Zeiger auf das WeaveConnection-Objekt, das die TCP-Verbindung mit dem Peer darstellt.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabe
Ein Zeiger auf das bei Erfolg erstellte ExchangeContext-Objekt. Andernfalls NULL, wenn kein Objekt zugewiesen werden kann oder verfügbar ist.

RegisterUnsolicitedMessageHandler

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

Registrieren Sie einen unerwünschten Nachrichten-Handler für eine bestimmte Profil-ID.

Dieser Handler wird für alle Nachrichten des angegebenen Profils aufgerufen.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] handler
Der Handler für unerwünschte Nachrichten.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabewerte
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Wenn der Handler-Pool für unerwünschte Nachrichten voll ist und kein neuer zugeordnet werden kann.
WEAVE_NO_ERROR
Bei Erfolg.

RegisterUnsolicitedMessageHandler

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

Registrieren Sie einen unerwünschten Nachrichten-Handler für eine bestimmte Profil-ID.

Dieser Handler wird für alle Nachrichten des angegebenen Profils aufgerufen.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] handler
Der Handler für unerwünschte Nachrichten.
[in] allowDups
Boolescher Indikator, der angibt, ob doppelte Nachrichten für ein bestimmtes Profil zulässig sind.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabewerte
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Wenn der Handler-Pool für unerwünschte Nachrichten voll ist und kein neuer zugeordnet werden kann.
WEAVE_NO_ERROR
Bei Erfolg.

RegisterUnsolicitedMessageHandler

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

Registrieren Sie einen unerwünschten Nachrichten-Handler für eine bestimmte Profil-ID und einen bestimmten Nachrichtentyp.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] handler
Der Handler für unerwünschte Nachrichten.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabewerte
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Wenn der Handler-Pool für unerwünschte Nachrichten voll ist und kein neuer zugeordnet werden kann.
WEAVE_NO_ERROR
Bei Erfolg.

RegisterUnsolicitedMessageHandler

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

Registrieren Sie einen unerwünschten Nachrichten-Handler für eine bestimmte Profil-ID und einen bestimmten Nachrichtentyp.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] handler
Der Handler für unerwünschte Nachrichten.
[in] allowDups
Boolescher Indikator dafür, ob doppelte Nachrichten für eine bestimmte Profilkennung und den Nachrichtentyp zulässig sind.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabewerte
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Wenn der Handler-Pool für unerwünschte Nachrichten voll ist und kein neuer zugeordnet werden kann.
WEAVE_NO_ERROR
Bei Erfolg.

RegisterUnsolicitedMessageHandler

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

Registriert einen unerwünschten Nachrichten-Handler für eine bestimmte Profilkennung (Nachrichtentyp) in einer angegebenen Weave-Verbindung.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] con
Ein Zeiger auf das WeaveConnection-Objekt, das die TCP-Verbindung mit dem Peer darstellt.
[in] handler
Der Handler für unerwünschte Nachrichten.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabewerte
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Wenn der Handler-Pool für unerwünschte Nachrichten voll ist und kein neuer zugeordnet werden kann.
WEAVE_NO_ERROR
Bei Erfolg.

RegisterUnsolicitedMessageHandler

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

Registriert einen unerwünschten Nachrichten-Handler für eine bestimmte Profilkennung (Nachrichtentyp) in einer angegebenen Weave-Verbindung.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] con
Ein Zeiger auf das WeaveConnection-Objekt, das die TCP-Verbindung mit dem Peer darstellt.
[in] handler
Der Handler für unerwünschte Nachrichten.
[in] allowDups
Boolescher Indikator dafür, ob doppelte Nachrichten für eine bestimmte Profil-ID, Nachrichtentyp bei einer bestimmten Weave-Verbindung zulässig sind.
[in] appState
Ein Zeiger auf ein Objekt auf einer höheren Ebene, das den Kontextstatus enthält.
Rückgabewerte
WEAVE_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS
Wenn der Handler-Pool für unerwünschte Nachrichten voll ist und kein neuer zugeordnet werden kann.
WEAVE_NO_ERROR
Bei Erfolg.

Herunterfahren

WEAVE_ERROR Shutdown(
  void
)

Fahren Sie WeaveExchangeManager herunter.

Dadurch wird diese Instanz des Objekts beendet und alle aufgehaltenen Ressourcen freigegeben.

Details
Rückgabe
WEAVE_NO_ERROR ohne Bedingungen.

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId
)

Hebt die Registrierung eines unerwünschten Nachrichten-Handlers für eine bestimmte Profil-ID auf.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
Rückgabewerte
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
Wenn der entsprechende Handler für unerwünschte Nachrichten nicht gefunden wurde.
WEAVE_NO_ERROR
Bei Erfolg.

UnregisterUnsolicitedMessageHandler

WEAVE_ERROR UnregisterUnsolicitedMessageHandler(
  uint32_t profileId,
  uint8_t msgType
)

Hebt die Registrierung eines unerwünschten Nachrichten-Handlers für eine bestimmte Profilkennung und einen bestimmten Nachrichtentyp auf.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
Rückgabewerte
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
Wenn der entsprechende Handler für unerwünschte Nachrichten nicht gefunden wurde.
WEAVE_NO_ERROR
Bei Erfolg.

UnregisterUnsolicitedMessageHandler

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

Hebt die Registrierung eines unerwünschten Nachrichten-Handlers für eine bestimmte Profilkennung, einen bestimmten Nachrichtentyp und eine bestimmte Weave-Verbindung auf.

Details
Parameter
[in] profileId
Die Profil-ID der empfangenen Nachricht.
[in] msgType
Der Nachrichtentyp des entsprechenden Profils.
[in] con
Ein Zeiger auf das WeaveConnection-Objekt, das die TCP-Verbindung mit dem Peer darstellt.
Rückgabewerte
WEAVE_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER
Wenn der entsprechende Handler für unerwünschte Nachrichten nicht gefunden wurde.
WEAVE_NO_ERROR
Bei Erfolg.

WeaveExchangeManager

 WeaveExchangeManager(
  void
)

Konstruktor für die Klasse WeaveExchangeManager.

Als Status wird „kState_NotInitialized“ festgelegt.