nl::Weave::ExchangeContext

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

Ta klasa reprezentuje trwającą rozmowę (ExchangeContext) między co najmniej 2 węzłami.

Podsumowanie

Definiuje metody kodowania i komunikacji komunikatów Weave w obrębie typu ExchangeContext za pomocą różnych mechanizmów transportu, takich jak TCP, UDP czy Weave Reliable Messaging.

Typy publiczne

@34{
  kSendFlag_AutoRetrans = 0x0001,
  kSendFlag_ExpectResponse = 0x0002,
  kSendFlag_RetransmissionTrickle = 0x0004,
  kSendFlag_DelaySend = 0x0008,
  kSendFlag_ReuseMessageId = 0x0010,
  kSendFlag_ReuseSourceId = 0x0020,
  kSendFlag_RetainBuffer = 0x0040,
  kSendFlag_AlreadyEncoded = 0x0080,
  kSendFlag_DefaultMulticastSourceAddress = 0x0100,
  kSendFlag_FromInitiator = 0x0200,
  kSendFlag_RequestAck = 0x0400,
  kSendFlag_NoAutoRequestAck = 0x0800,
  kSendFlag_MulticastFromLinkLocal = kSendFlag_DefaultMulticastSourceAddress
}
enum | typ wyliczeniowy
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum | typ wyliczeniowy
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji, które ma zostać wywołane po zamknięciu istniejącego połączenia Weave.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Typ funkcji obsługi kluczowych komunikatów o błędach.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji do obsługi odebranej wiadomości Weave.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji, które ma być wywoływane po upływie czasu oczekiwania na otrzymanie wiadomości z odpowiedzią.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Ta funkcja służy do wywołania zwrotnego aplikacji po upływie limitu czasu na ponowne przesłanie wcześniej wysłanej wiadomości.
Timeout typedef
uint32_t
Typ używany do wyrażenia czasu oczekiwania w elemencie ExchangeContext (w milisekundach).
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji, które jest wywoływane po odebraniu potwierdzenia dla wiadomości Weave, która zażądała jej w ramach protokołu Weave Reliable Messaging Protocol.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji, które ma być wywoływane, gdy wiadomość Throttle lub wiadomość o opóźnionym dostarczeniu zostanie odebrane w ramach protokołu Weave Reliable Messaging Protocol.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Ta funkcja to wywołanie zwrotne aplikacji, które ma zostać wywołane, gdy wystąpi błąd podczas wysyłania komunikatu Weave.

Atrybuty publiczne

AllowDuplicateMsgs
bool
Wartość logiczna wskazująca, czy duplikaty wiadomości są dozwolone w przypadku danej giełdy.
AppState
void *
Wskaźnik do obiektu stanu specyficznego dla aplikacji.
Con
[TYLKO DO ODCZYTU] Powiązane połączenie Weave.
EncryptionType
uint8_t
Typ szyfrowania używany podczas wysyłania wiadomości.
ExchangeId
uint16_t
[TYLKO DO ODCZYTU] Identyfikator przypisanej giełdy.
ExchangeMgr
[TYLKO DO ODCZYTU] Jesteś właścicielem menedżera giełdy.
KeyId
uint16_t
Klucz szyfrowania używany podczas wysyłania wiadomości.
OnAckRcvd
Wywołanie zwrotne aplikacji w celu otrzymania potwierdzenia.
OnConnectionClosed
OnDDRcvd
Wywołanie zwrotne aplikacji w przypadku odebrania wiadomości o opóźnionym dostarczeniu.
OnKeyError
Ta funkcja to wywołanie zwrotne aplikacji, które ma zostać wywołane po odebraniu kluczowego komunikatu o błędzie z peera.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Wywołanie zwrotne aplikacji w przypadku błędu podczas wysyłania.
OnThrottleRcvd
Wywołanie zwrotne aplikacji w przypadku odebranej wiadomości Throttle.
PeerAddr
IPAddress
[TYLKO DO ODCZYTU] Adres IP węzła równorzędnego.
PeerIntf
InterfaceId
[TYLKO DO ODCZYTU] Interfejs wychodzący używany podczas wysyłania wiadomości do połączenia równorzędnego.
PeerNodeId
uint64_t
[TYLKO DO ODCZYTU] Identyfikator węzła węzła równorzędnego.
PeerPort
uint16_t
[TYLKO DO ODCZYTU] Port węzła równorzędnego.
ResponseTimeout
Maksymalny czas oczekiwania na odpowiedź (w milisekundach); wartość 0 wyłącza limit czasu odpowiedzi.
RetransInterval
uint32_t
Czas między ponownymi przesyłaniem (w milisekundach); wartość 0 wyłącza ponowne przesyłanie.
mMsgProtocolVersion
uint16_t
Wersja protokołu Message Protocol dla ExchangeContext.
mWRMPConfig
Konfiguracja WRMP.

Funkcje publiczne

Abort(void)
void
Natychmiast przerwij kontekst Exchange i zwolnij wszystkie odwołania do niego.
AddRef(void)
void
Zwiększ o 1 licznik referencyjny dla kontekstu giełdy.
AutoRequestAck() const
bool
Zwraca, czy po wysłaniu wiadomości wymagane jest potwierdzenie.
CancelRetrans(void)
void
Anuluj mechanizm ponownego przesyłania wiadomości Trickle.
Close(void)
void
Starannie zamknij kontekst wymiany.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Zakoduj nagłówek Exchange w buforze wiadomości.
GetAutoReleaseKey() const
bool
Zwraca, czy klucz szyfrowania powiązany z giełdą powinien zostać zwolniony po jej zwolnieniu.
GetCurrentRetransmitTimeout(void)
uint32_t
Pobierz bieżący czas oczekiwania na ponowne przesłanie.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Konstruuje ciąg tekstowy opisujący węzeł równorzędny i powiązany z nim adres lub informacje o połączeniu.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Obsługuj wiadomość kroczącą w kontekście wymiany.
HasPeerRequestedAck(void) const
bool
Określ, czy serwer równorzędny poprosił o potwierdzenie co najmniej 1 wiadomości na tej giełdzie.
HasRcvdMsgFromPeer(void) const
bool
Sprawdź, czy w ramach tej wymiany odebrano co najmniej 1 wiadomość od równorzędną.
IsAckPending(void) const
bool
Sprawdź, czy istnieje już potwierdzenie oczekujące na wysłanie do połączenia równorzędnego na tej giełdzie.
IsConnectionClosed(void) const
bool
Sprawdź, czy z kontem ExchangeContext jest powiązane aktywne połączenie WeaveConnection.
IsInitiator(void) const
bool
Ustal, czy kontekst jest inicjatorem wymiany.
IsResponseExpected(void) const
bool
Ustal, czy oczekiwana jest odpowiedź na wiadomości wysyłane przez tę wymianę.
Release(void)
void
Zwolnij informacje o tym kontekście wymiany.
SendCommonNullMessage(void)
Wyślij wiadomość typu Common::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Wyślij wiadomość Weave na tej wymianie.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Wyślij wiadomość Weave na tej wymianie.
SetAckPending(bool inAckPending)
void
Ustaw, jeśli należy wysłać potwierdzenie do peera w tej giełdzie.
SetAutoReleaseKey(bool autoReleaseKey)
void
Określ, czy klucz szyfrowania powiązany z giełdą ma zostać zwolniony po jej uwolnieniu.
SetAutoRequestAck(bool autoReqAck)
void
Określ, czy po wysłaniu wiadomości ma być wysyłane żądanie potwierdzenia.
SetConnectionClosed(bool inConnectionClosed)
void
Ustaw bit flagi kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Określ, czy WeaveExchangeManager nie ma wysyłać potwierdzeń w tym kontekście.
SetInitiator(bool inInitiator)
void
Ustaw bit flagi kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Ustaw, czy otrzymano wiadomość od peera na tej giełdzie.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Ustaw, jeśli prośba o potwierdzenie została wysłana w ostatniej wiadomości otrzymanej na tej giełdzie.
SetResponseExpected(bool inResponseExpected)
void
Określ, czy oczekiwana jest odpowiedź na tej giełdzie.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Określ, czy połączenie Weave powiązane z giełdą ma zostać anulowane po zwolnieniu giełdy.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Skonfiguruj mechanizm retransmisji kroplowej, ustawiając odpowiedni odstęp czasu ponownego przesyłania i próg retransmisji.
ShouldAutoReleaseConnection() const
bool
Zwraca, czy połączenie Weave powiązane z giełdą powinno zostać anulowane po uwolnieniu giełdy.
ShouldDropAck(void) const
bool
Określ, czy WeaveExchangeManager nie powinien wysyłać potwierdzenia.
StartTimerT(void)
Uruchamianie mechanizmu licznika czasu retransmisji w algorytmie Trickle.
TeardownTrickleRetransmit(void)
void
Wyłącz mechanizm ponownego przesyłania wiadomości przez próbkę, anulując okresowe minutniki w tej aplikacji i zwolnijąc bufor wiadomości, w którym znajduje się wiadomość Weave.
UseEphemeralUDPPort(void) const
bool
Zwraca, czy wiadomości wychodzące wysyłane przez giełdę mają być wysyłane z lokalnego efemerycznego portu UDP.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Wyślij wiadomość o opóźnionym dostarczeniu, aby powiadomić węzeł nadawcy o oczekiwanym opóźnieniu dostarczenia wiadomości do adresata.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Wyślij wiadomość funkcji ograniczania do węzła równorzędnego, aby ograniczyć wysyłanie wiadomości.

Typy publiczne

@34

 @34
Właściwości
kSendFlag_AlreadyEncoded

Służy do informowania, że wiadomość jest już zakodowana.

kSendFlag_AutoRetrans

Służy do wskazywania, że automatyczne ponowne przesyłanie jest włączone.

kSendFlag_DefaultMulticastSourceAddress

Służy do wskazywania, że podczas wysyłania wiadomości multiemisji IPv6 ma być używany domyślny adres źródłowy IPv6.

kSendFlag_DelaySend

Służy do wskazywania, że wysłanie bieżącej wiadomości musi zostać opóźnione.

kSendFlag_ExpectResponse

Służy do wskazywania, że odpowiedź jest spodziewana w określonym czasie oczekiwania.

kSendFlag_FromInitiator

Służy do wskazywania, że bieżąca wiadomość jest inicjatorem wymiany.

kSendFlag_MulticastFromLinkLocal

Wycofano alias dla: kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Pomiń funkcję automatycznego potwierdzania żądań podczas wysyłania wiadomości.

kSendFlag_RequestAck

Służy do wysyłania wiadomości WRM z prośbą o potwierdzenie.

kSendFlag_RetainBuffer

Służy do wskazywania, że po wysłaniu nie należy zwolnić bufora wiadomości.

kSendFlag_RetransmissionTrickle

Służy do wskazywania wymogu ponownego przesyłania w przypadku Trickle.

kSendFlag_ReuseMessageId

Służy do informowania, że można ponownie użyć identyfikatora wiadomości z nagłówka.

kSendFlag_ReuseSourceId

Służy do wskazywania, że można ponownie użyć identyfikatora węzła źródłowego z nagłówka wiadomości.

@35

 @35
Właściwości
kGetPeerDescription_MaxLength

Maksymalna długość ciągu znaków (w tym znaku NUL) zwróconego przez funkcję GetPeerDescription().

ConnectionClosedFunct

void(* ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr)

Ta funkcja to wywołanie zwrotne aplikacji, które ma zostać wywołane po zamknięciu istniejącego połączenia Weave.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] con
Wskaźnik do obiektu WeaveConnection.
[in] conErr
Typ WEAVE_ERROR, który został zgłoszony podczas zamykania połączenia.

KeyErrorFunct

void(* KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr)

Typ funkcji obsługi kluczowych komunikatów o błędach.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] keyErr
Typ WEAVE_ERROR zgłoszony w kluczowym komunikacie o błędzie.

MessageReceiveFunct

void(* MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)

Ta funkcja to wywołanie zwrotne aplikacji do obsługi odebranej wiadomości Weave.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] pktInfo
Wskaźnik do obiektu IPPacketInfo.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] profileId
Identyfikator profilu odebranej wiadomości.
[in] msgType
Typ wiadomości dla danego profilu.
[in] payload
Wskaźnik do obiektu PacketBuffer, w którym znajduje się ładunek wiadomości.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Ta funkcja to wywołanie zwrotne aplikacji, które ma być wywoływane po upływie czasu oczekiwania na otrzymanie wiadomości z odpowiedzią.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Ta funkcja służy do wywołania zwrotnego aplikacji po upływie limitu czasu na ponowne przesłanie wcześniej wysłanej wiadomości.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.

Czas oczekiwania

uint32_t Timeout

Typ używany do wyrażenia czasu oczekiwania w elemencie ExchangeContext (w milisekundach).

WRMPAckRcvdFunct

void(* WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt)

Ta funkcja to wywołanie zwrotne aplikacji, które jest wywoływane po odebraniu potwierdzenia dla wiadomości Weave, która zażądała jej w ramach protokołu Weave Reliable Messaging Protocol.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] msgCtxt
Wskaźnik do obiektu kontekstu powiązanego z oryginalną wiadomością, która została potwierdzona.

WRMPPauseRcvdFunct

void(* WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime)

Ta funkcja to wywołanie zwrotne aplikacji, które ma być wywoływane, gdy wiadomość Throttle lub wiadomość o opóźnionym dostarczeniu zostanie odebrane w ramach protokołu Weave Reliable Messaging Protocol.

Każdej z tych wiadomości towarzyszy wartość czasu (w milisekundach), która oznacza czas wstrzymania wysyłania wiadomości Weave w danym ExchangeContext.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] pauseTime
Czas wstrzymania transmisji (w milisekundach).

WRMPSendErrorFunct

void(* WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt)

Ta funkcja to wywołanie zwrotne aplikacji, które ma zostać wywołane, gdy wystąpi błąd podczas wysyłania komunikatu Weave.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] err
Typ WEAVE_ERROR, który został napotkany podczas wysyłania wiadomości.
[in] msgCtxt
Wskaźnik do określonego obiektu kontekstu powiązanego z oryginalną wiadomością, której dotyczy zgłoszenie.

Atrybuty publiczne

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Wartość logiczna wskazująca, czy duplikaty wiadomości są dozwolone w przypadku danej giełdy.

AppState

void * AppState

Wskaźnik do obiektu stanu specyficznego dla aplikacji.

Minus

WeaveConnection * Con

[TYLKO DO ODCZYTU] Powiązane połączenie Weave.

EncryptionType

uint8_t EncryptionType

Typ szyfrowania używany podczas wysyłania wiadomości.

ExchangeId

uint16_t ExchangeId

[TYLKO DO ODCZYTU] Identyfikator przypisanej giełdy.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[TYLKO DO ODCZYTU] Jesteś właścicielem menedżera giełdy.

KeyId

uint16_t KeyId

Klucz szyfrowania używany podczas wysyłania wiadomości.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Wywołanie zwrotne aplikacji w celu otrzymania potwierdzenia.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Wywołanie zwrotne aplikacji w przypadku odebrania wiadomości o opóźnionym dostarczeniu.

OnKeyError

KeyErrorFunct OnKeyError

Ta funkcja to wywołanie zwrotne aplikacji, które ma zostać wywołane po odebraniu kluczowego komunikatu o błędzie z peera.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Wywołanie zwrotne aplikacji w przypadku błędu podczas wysyłania.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Wywołanie zwrotne aplikacji w przypadku odebranej wiadomości Throttle.

PeerAddr

IPAddress PeerAddr

[TYLKO DO ODCZYTU] Adres IP węzła równorzędnego.

PeerIntf

InterfaceId PeerIntf

[TYLKO DO ODCZYTU] Interfejs wychodzący używany podczas wysyłania wiadomości do połączenia równorzędnego.

(istotne tylko dla UDP).

PeerNodeId

uint64_t PeerNodeId

[TYLKO DO ODCZYTU] Identyfikator węzła węzła równorzędnego.

PeerPort

uint16_t PeerPort

[TYLKO DO ODCZYTU] Port węzła równorzędnego.

ResponseTimeout

Timeout ResponseTimeout

Maksymalny czas oczekiwania na odpowiedź (w milisekundach); wartość 0 wyłącza limit czasu odpowiedzi.

RetransInterval

uint32_t RetransInterval

Czas między ponownymi przesyłaniem (w milisekundach); wartość 0 wyłącza ponowne przesyłanie.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Wersja protokołu Message Protocol dla ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

Konfiguracja WRMP.

Funkcje publiczne

Przerwij

void Abort(
  void
)

Natychmiast przerwij kontekst Exchange i zwolnij wszystkie odwołania do niego.

AddRef

void AddRef(
  void
)

Zwiększ o 1 licznik referencyjny dla kontekstu giełdy.

AutoRequestAck

bool AutoRequestAck() const 

Zwraca, czy po wysłaniu wiadomości wymagane jest potwierdzenie.

CancelRetrans

void CancelRetrans(
  void
)

Anuluj mechanizm ponownego przesyłania wiadomości Trickle.

Zamknij

void Close(
  void
)

Starannie zamknij kontekst wymiany.

Wywołanie to zmniejsza liczbę plików referencyjnych i zwalnia giełdę, gdy ich liczba spadnie do 0.

EncodeExchHeader

WEAVE_ERROR EncodeExchHeader(
  WeaveExchangeHeader *exchangeHeader,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags
)

Zakoduj nagłówek Exchange w buforze wiadomości.

Szczegóły
Parametry
[in] exchangeHeader
Wskaźnik do obiektu nagłówka Weave Exchange.
[in] profileId
Identyfikator profilu wiadomości Weave, która ma zostać wysłana.
[in] msgType
Typ wiadomości dla danego profilu.
[in] msgBuf
Wskaźnik do bufora pakietu wymaganego dla wiadomości Weave.
[in] sendFlags
Flagi ustawione przez aplikację dla wysyłanej wiadomości Weave.
Zwracane wartości
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli w buforze wiadomości nie ma wystarczającej ilości miejsca na kodowanie nagłówka Exchange.
WEAVE_NO_ERROR
Jeśli zakodowanie wiadomości powiodło się.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Zwraca, czy klucz szyfrowania powiązany z giełdą powinien zostać zwolniony po jej zwolnieniu.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Pobierz bieżący czas oczekiwania na ponowne przesłanie.

Jest to początkowy lub aktywny limit czasu ponownego przesyłania w zależności od tego, czy w kontenerze ExchangeContext jest aktywna wymiana wiadomości z peerem.

Szczegóły
Zwroty
bieżący czas ponownego przesłania.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Konstruuje ciąg tekstowy opisujący węzeł równorzędny i powiązany z nim adres lub informacje o połączeniu.

Szczegóły
Parametry
[in] buf
Wskaźnik do bufora, w którym należy zapisać ciąg znaków. Podany bufor powinien mieć co najmniej tyle, co kGetPeerDescription_MaxLength. Jeśli zostanie podany mniejszy bufor, ciąg zostanie przycięty, aby się zmieścił. Dane wyjściowe we wszystkich przypadkach będą zawierać znak zakończenia NUL.
[in] bufSize
Rozmiar bufora wskazywany przez bufor.

HandleTrickleMessage

void HandleTrickleMessage(
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo
)

Obsługuj wiadomość kroczącą w kontekście wymiany.

Szczegóły
Parametry
[in] pktInfo
Wskaźnik do obiektu IPPacketInfo.
[in] msgInfo
Wskaźnik struktury informacji o wiadomościach Weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Określ, czy serwer równorzędny poprosił o potwierdzenie co najmniej 1 wiadomości na tej giełdzie.

Szczegóły
Zwroty
Zwraca wartość „true” (prawda), jeśli zażądano potwierdzenia, w przeciwnym razie zwraca wartość „false” (fałsz).

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Sprawdź, czy w ramach tej wymiany odebrano co najmniej 1 wiadomość od równorzędną.

Szczegóły
Zwroty
Zwraca wartość „true” (prawda), jeśli wiadomość została dostarczona, a w przeciwnym razie zwraca wartość „false” (fałsz).

IsAckPending

bool IsAckPending(
  void
) const 

Sprawdź, czy istnieje już potwierdzenie oczekujące na wysłanie do połączenia równorzędnego na tej giełdzie.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Sprawdź, czy z kontem ExchangeContext jest powiązane aktywne połączenie WeaveConnection.

Szczegóły
Zwroty
Zwraca wartość „true” (prawda), jeśli połączenie jest zamknięte, w przeciwnym razie zwraca wartość „false” (fałsz).

IsInitiator

bool IsInitiator(
  void
) const 

Ustal, czy kontekst jest inicjatorem wymiany.

Szczegóły
Zwroty
Zwraca wartość „true” (prawda), jeśli inicjatorem jest inicjator, w przeciwnym razie zwraca wartość „false” (fałsz).

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Ustal, czy oczekiwana jest odpowiedź na wiadomości wysyłane przez tę wymianę.

Szczegóły
Zwroty
Zwraca wartość „true” (prawda), jeśli oczekiwana jest odpowiedź, w przeciwnym razie zwraca wartość „false” (fałsz).

Premiera

void Release(
  void
)

Zwolnij informacje o tym kontekście wymiany.

Jeśli licznik wynosi 1, zamknij kontekst, zresetuj wszystkie wywołania zwrotne aplikacji i zatrzymaj wszystkie liczniki czasu.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Wyślij wiadomość typu Common::Null.

Szczegóły
Zwracane wartości
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma dostępnych buforów pakietów.
WEAVE_NO_ERROR
Informacja, czy metoda się powiodła lub czy błąd nie był krytyczny.
other
Kolejny błąd krytyczny zwrócony przez funkcję SendMessage().

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgPayload,
  uint16_t sendFlags,
  void *msgCtxt
)

Wyślij wiadomość Weave na tej wymianie.

Szczegóły
Parametry
[in] profileId
Identyfikator profilu wiadomości Weave, która ma zostać wysłana.
[in] msgType
Typ wiadomości dla danego profilu.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, w którym znajduje się wiadomość Weave.
[in] sendFlags
Flagi ustawione przez aplikację dla wysyłanej wiadomości Weave.
[in] msgCtxt
Wskaźnik do obiektu kontekstu specyficznego dla aplikacji, który ma być powiązany z wysyłaną wiadomością.
Zwracane wartości
WEAVE_ERROR_INVALID_ARGUMENT
jeśli do tego interfejsu SendMessage API został przekazany nieprawidłowy argument.
WEAVE_ERROR_SEND_THROTTLED
jeśli ten kontekst wymiany został ograniczony podczas korzystania z niezawodnego protokołu przesyłania wiadomości Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Jeśli konkretna operacja wysyłania nie jest zgodna z obsługiwaną wersją protokołu wiadomości Weave. Ten błąd może wystąpić na przykład w przypadku próby zastosowania semantyki protokołu Weave Reliable Messaging, gdy wersja 1 protokołu wiadomości Weave jest używana.
WEAVE_ERROR_NOT_CONNECTED
jeśli kontekst był powiązany z połączeniem, które zostało już zamknięte.
WEAVE_ERROR_INCORRECT_STATE
jeśli kontekst stanu giełdy jest nieprawidłowy.
WEAVE_NO_ERROR
jeśli warstwa Weave wysłała wiadomość do warstwy sieciowej.

SendMessage

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags,
  WeaveMessageInfo *msgInfo,
  void *msgCtxt
)

Wyślij wiadomość Weave na tej wymianie.

Szczegóły
Parametry
[in] profileId
Identyfikator profilu wiadomości Weave, która ma zostać wysłana.
[in] msgType
Typ wiadomości dla danego profilu.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer, w którym znajduje się wiadomość Weave.
[in] sendFlags
Flagi ustawione przez aplikację dla wysyłanej wiadomości Weave.
[in] msgInfo
Wskaźnik do obiektu WeaveMessageInfo.
[in] msgCtxt
Wskaźnik do obiektu kontekstu specyficznego dla aplikacji, który ma być powiązany z wysyłaną wiadomością.
Zwracane wartości
WEAVE_ERROR_INVALID_ARGUMENT
jeśli do tego interfejsu SendMessage API został przekazany nieprawidłowy argument.
WEAVE_ERROR_SEND_THROTTLED
jeśli ten kontekst wymiany został ograniczony podczas korzystania z niezawodnego protokołu przesyłania wiadomości Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Jeśli konkretna operacja wysyłania nie jest zgodna z obsługiwaną wersją protokołu wiadomości Weave. Ten błąd może wystąpić na przykład w przypadku próby zastosowania semantyki protokołu Weave Reliable Messaging, gdy wersja 1 protokołu wiadomości Weave jest używana.
WEAVE_ERROR_NOT_CONNECTED
jeśli kontekst był powiązany z połączeniem, które zostało już zamknięte.
WEAVE_ERROR_INCORRECT_STATE
jeśli kontekst stanu giełdy jest nieprawidłowy.
WEAVE_NO_ERROR
jeśli warstwa Weave wysłała wiadomość do warstwy sieciowej.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Ustaw, jeśli należy wysłać potwierdzenie do peera w tej giełdzie.

Szczegóły
Parametry
[in] inAckPending
Wartość logiczna wskazująca, czy w odpowiedzi na odebraną wiadomość powinno zostać wysłane potwierdzenie (prawda) czy nie (fałsz).

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Określ, czy klucz szyfrowania powiązany z giełdą ma zostać zwolniony po jej uwolnieniu.

Szczegóły
Parametry
[in] autoReleaseKey
Wartość to „prawda”, jeśli klucz szyfrowania wiadomości ma zostać automatycznie zwolniony.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Określ, czy po wysłaniu wiadomości ma być wysyłane żądanie potwierdzenia.

Szczegóły
Parametry
[in] autoReqAck
Wartość logiczna wskazująca, czy po wysłaniu wiadomości należy zażądać potwierdzenia.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Ustaw bit flagi kFlagConnectionClosed.

Ta flaga jest ustawiana, gdy połączenie WeaveConnection powiązane z kontekstem ExchangeContext jest zamknięte.

Szczegóły
Parametry
[in] inConnectionClosed
Wartość logiczna wskazująca, czy (prawda) czy nie (fałsz) kontekst został powiązany z połączeniem.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Określ, czy WeaveExchangeManager nie ma wysyłać potwierdzeń w tym kontekście.

Do użytku wewnętrznego – tylko do debugowania.

Szczegóły
Parametry
[in] inDropAck
Wartość logiczna wskazująca, czy (prawda) czy nie (fałsz) potwierdzenia nie powinny być wysyłane w ramach wymiany.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Ustaw bit flagi kFlagInitiator.

Tę flagę ustawia węzeł, który inicjuje wymianę.

Szczegóły
Parametry
[in] inInitiator
Wartość logiczna wskazująca, czy (prawda) czy nie (fałsz) kontekst jest inicjatorem wymiany.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Ustaw, czy otrzymano wiadomość od peera na tej giełdzie.

Szczegóły
Parametry
[in] inMsgRcvdFromPeer
Wartość logiczna wskazująca, czy (true) (prawda) czy nie (false) (fałsz) odebrano wiadomość od peera w tym kontekście wymiany.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Ustaw, jeśli prośba o potwierdzenie została wysłana w ostatniej wiadomości otrzymanej na tej giełdzie.

Szczegóły
Parametry
[in] inPeerRequestedAck
Wartość logiczna wskazująca, czy w ostatniej odebranej wiadomości zażądano potwierdzenia (prawda) czy nie (fałsz).

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Określ, czy oczekiwana jest odpowiedź na tej giełdzie.

Szczegóły
Parametry
[in] inResponseExpected
Wartość logiczna wskazująca, czy w ramach tej wymiany oczekiwana jest odpowiedź (prawda) czy nie (fałsz).

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Określ, czy połączenie Weave powiązane z giełdą ma zostać anulowane po zwolnieniu giełdy.

Szczegóły
Parametry
[in] autoReleaseCon
Prawda, jeśli połączenie Weave powinno zostać automatycznie anulowane.

SetupTrickleRetransmit

WEAVE_ERROR SetupTrickleRetransmit(
  uint32_t retransInterval,
  uint8_t threshold,
  uint32_t timeout
)

Skonfiguruj mechanizm retransmisji kroplowej, ustawiając odpowiedni odstęp czasu ponownego przesyłania i próg retransmisji.

Szczegóły
Parametry
[in] retransInterval
Przedział czasu ponownego przesyłania algorytmu retransmisji w Trickle.
[in] threshold
Maksymalna liczba retransmisji wiadomości.
[in] timeout
Maksymalny czas oczekiwania przed anulowaniem licznika czasu ponownego przesyłania Trickle.
Zwroty
Jeśli konfiguracja przebiegła pomyślnie, WEAVE_NO_ERROR. W przeciwnym razie INET_ERROR zmapowano na WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Zwraca, czy połączenie Weave powiązane z giełdą powinno zostać anulowane po uwolnieniu giełdy.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Określ, czy WeaveExchangeManager nie powinien wysyłać potwierdzenia.

Do użytku wewnętrznego – tylko do debugowania.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Uruchamianie mechanizmu licznika czasu retransmisji w algorytmie Trickle.

Szczegóły
Zwroty
Jeśli operacja się uda, WEAVE_NO_ERROR. W przeciwnym razie INET_ERROR zmapowano na WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Wyłącz mechanizm ponownego przesyłania wiadomości przez próbkę, anulując okresowe minutniki w tej aplikacji i zwolnijąc bufor wiadomości, w którym znajduje się wiadomość Weave.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Zwraca, czy wiadomości wychodzące wysyłane przez giełdę mają być wysyłane z lokalnego efemerycznego portu UDP.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Wyślij wiadomość o opóźnionym dostarczeniu, aby powiadomić węzeł nadawcy o oczekiwanym opóźnieniu dostarczenia wiadomości do adresata.

Jedną z możliwych przyczyn opóźnienia wiadomości przed dostarczeniem jest senność węzła końcowego odbiorcy. Ta wiadomość może zostać wygenerowana przez odpowiedni węzeł pośredni na ścieżce wysyłania, który dysponuje wystarczającą wiedzą na temat adresata, by dowiedzieć się więcej o opóźnionym dostarczeniu. Po otrzymaniu tej wiadomości nadawca zmieniłby swoje liczniki ponownego przesyłania dla wiadomości, które zwracają potwierdzenia.

Szczegóły
Parametry
[in] pauseTimeMillis
Przewidywany opóźnienie (w milisekundach), o ile wcześniej wysłana wiadomość zostanie dostarczona.
[in] delayedNodeId
Identyfikator węzła równorzędnego, do którego dostawa wiadomości będzie opóźniona.
Zwracane wartości
WEAVE_ERROR_INVALID_ARGUMENT
jeśli do tego interfejsu SendMessage API został przekazany nieprawidłowy argument.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Jeśli konkretna operacja wysyłania nie jest zgodna z obsługiwaną wersją protokołu wiadomości Weave. Ten błąd może wystąpić na przykład w przypadku próby zastosowania semantyki protokołu Weave Reliable Messaging, gdy wersja 1 protokołu wiadomości Weave jest używana.
WEAVE_ERROR_NOT_CONNECTED
jeśli kontekst był powiązany z połączeniem, które zostało już zamknięte.
WEAVE_ERROR_INCORRECT_STATE
jeśli kontekst stanu giełdy jest nieprawidłowy.
WEAVE_NO_ERROR
jeśli warstwa Weave wysłała wiadomość do warstwy sieciowej.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Wyślij wiadomość funkcji ograniczania do węzła równorzędnego, aby ograniczyć wysyłanie wiadomości.

Szczegóły
Parametry
[in] pauseTimeMillis
Przewidywany czas ograniczenia wysyłania przez odbiorcę (w milisekundach).
Zwracane wartości
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli do tego interfejsu SendMessage API został przekazany nieprawidłowy argument.
WEAVE_ERROR_SEND_THROTTLED
Jeśli ten kontekst wymiany został ograniczony podczas korzystania z niezawodnego protokołu przesyłania wiadomości Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Jeśli konkretna operacja wysyłania nie jest zgodna z obsługiwaną wersją protokołu wiadomości Weave. Ten błąd może wystąpić na przykład w przypadku próby zastosowania semantyki protokołu Weave Reliable Messaging, gdy wersja 1 protokołu wiadomości Weave jest używana.
WEAVE_ERROR_NOT_CONNECTED
Jeśli kontekst był powiązany z połączeniem, które zostało już zamknięte.
WEAVE_ERROR_INCORRECT_STATE
Jeśli kontekst stanu giełdy jest nieprawidłowy.
WEAVE_NO_ERROR
Jeśli warstwa Weave pomyślnie wysłała wiadomość do warstwy sieciowej.