nl::Weave::ExchangeContext

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

Ta klasa reprezentuje trwającą rozmowę (ExchangeContext) między 2 lub większą liczbą węzłów.

Podsumowanie

Definiuje metody kodowania i komunikowania wiadomości Weave w ramach ExchangeContext przez różne mechanizmy transportowe, na przykład TCP, UDP lub 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 jest wywołaniem zwrotnym aplikacji, który zostanie wywołany po zamknięciu istniejącego połączenia Weave.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Typ funkcji obsługi podstawowego komunikatu o błędzie.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym aplikacji do obsługi odebranej wiadomości Weave.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma być wywoływane po upływie czasu oczekiwania na odebranie wiadomości z odpowiedzią.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma zostać uruchomione po upływie limitu czasu na ponowne przesłanie wcześniej wysłanej wiadomości.
Timeout typedef
uint32_t
Typ używany do wyrażania czasu oczekiwania w tym ExchangeContext (w milisekundach).
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma być wywoływane po otrzymaniu potwierdzenia dla wiadomości Weave, która zażądała takiego potwierdzenia w ramach protokołu Weave Reliable Messaging Protocol.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma być wywoływane po otrzymaniu komunikatu Throttle lub Delayed Delivery w ramach protokołu Weave Reliable Messaging Protocol.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Ta funkcja jest wywołaniem zwrotnym aplikacji w przypadku wystąpienia błędu podczas wysyłania komunikatu Weave.

Atrybuty publiczne

AllowDuplicateMsgs
bool
Wartość logiczna wskazująca, czy w danej komunikacji duplikaty wiadomości są dozwolone.
AppState
void *
Wskaźnik do obiektu stanu określonej 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
[ODCZYT] Identyfikator przypisanej giełdy.
ExchangeMgr
[TYLKO DO ODCZYTU] Posiadanie konta menedżera giełdy.
KeyId
uint16_t
Klucz szyfrowania używany podczas wysyłania wiadomości.
OnAckRcvd
Wywołanie zwrotne aplikacji dotyczące otrzymanego potwierdzenia.
OnConnectionClosed
OnDDRcvd
Wywołanie zwrotne aplikacji dla odebranej wiadomości o opóźnionym dostarczaniu.
OnKeyError
Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma być wywoływane po otrzymaniu komunikatu o błędzie klucza z połączenia równorzędnego.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Wywołanie zwrotne aplikacji z powodu błędu podczas wysyłania.
OnThrottleRcvd
Wywołanie zwrotne aplikacji dla odebranej wiadomości Throttle.
PeerAddr
IPAddress
[READ ONLY] Adres IP węzła równorzędnego.
PeerIntf
InterfaceId
[TYLKO DO ODCZYTU] Interfejs wychodzący używany podczas wysyłania wiadomości do peera.
PeerNodeId
uint64_t
[READ ONLY] 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 czas oczekiwania na odpowiedź.
RetransInterval
uint32_t
czas między kolejnymi przesłaniami (w milisekundach), Wartość 0 wyłącza ponowne przesyłanie.
mMsgProtocolVersion
uint16_t
Wersja protokołu wiadomości 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
Wskazuje, czy przy wysyłaniu wiadomości ma być wymagane potwierdzenie.
CancelRetrans(void)
void
Anuluj mechanizm retransmisji usługi Trikile.
Close(void)
void
Z gracją zamknij kontekst wymiany.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Zakoduj nagłówek wymiany w buforze wiadomości.
GetAutoReleaseKey() const
bool
Wskazuje, czy klucz szyfrowania powiązany z giełdą powinien zostać zwolniony po jego zwolnieniu.
GetCurrentRetransmitTimeout(void)
uint32_t
Pobierz aktualny limit czasu ponownego przesyłania.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Konstruuje ciąg znaków opisujący węzeł równorzędny i powiązany z nim adres / informacje o połączeniu.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Obsługuj przekaz otrzymywany w kontekście wymiany.
HasPeerRequestedAck(void) const
bool
Określ, czy serwer równorzędny poprosił o potwierdzenie co najmniej 1 wiadomości w tej wymianie.
HasRcvdMsgFromPeer(void) const
bool
Określ, czy na tej wymiany została odebrana co najmniej 1 wiadomość od podmiotu równorzędnego.
IsAckPending(void) const
bool
Sprawdź, czy istnieje już potwierdzenie oczekujące na wysłanie do połączenia równorzędnego w tej wymianie.
IsConnectionClosed(void) const
bool
Określ, czy ExchangeContext ma powiązane aktywne WeaveConnection.
IsInitiator(void) const
bool
Ustal, czy dany kontekst jest inicjatorem wymiany.
IsResponseExpected(void) const
bool
Określ, czy oczekuje się odpowiedzi na wiadomości wysyłane przez tę wymianę.
Release(void)
void
Odniesienie do wydania w kontekście tej giełdy.
SendCommonNullMessage(void)
Wyślij wiadomość Common::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Wyślij wiadomość w Weave w ramach tej wymiany.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Wyślij wiadomość w Weave w ramach tej wymiany.
SetAckPending(bool inAckPending)
void
Określ, czy trzeba wysłać potwierdzenie z powrotem do połączenia równorzędnego na tej giełdzie.
SetAutoReleaseKey(bool autoReleaseKey)
void
Określ, czy klucz szyfrowania powiązany z giełdą ma zostać zwolniony po jego zwolnieniu.
SetAutoRequestAck(bool autoReqAck)
void
Określ, czy potwierdzenie ma być wysyłane przy każdym wysyłaniu wiadomości.
SetConnectionClosed(bool inConnectionClosed)
void
Ustaw bit flagi kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Określ, czy WeaveExchangeManager ma nie wysyłać potwierdzenia w tym kontekście.
SetInitiator(bool inInitiator)
void
Ustaw bit flagi kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Ustaw, czy została odebrana wiadomość od partnera na tej wymianie.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Ustaw, jeśli w ostatniej wiadomości odebranej w ramach tej wymiany wysłano prośbę o potwierdzenie.
SetResponseExpected(bool inResponseExpected)
void
Określ, czy odpowiedź ma być oczekiwana na tej giełdzie.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Określ, czy połączenie Weave powiązane z giełdą ma zostać zwolnione po zwolnieniu giełdy.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Skonfiguruj mechanizm retransmisji kroczącej, ustawiając odpowiedni interwał retransmisji i próg retransmisji.
ShouldAutoReleaseConnection() const
bool
Wskazuje, czy połączenie Weave powiązane z giełdą ma zostać zwolnione po zwolnieniu giełdy.
ShouldDropAck(void) const
bool
Określ, czy WeaveExchangeManager ma nie wysyłać potwierdzenia.
StartTimerT(void)
Uruchom mechanizm licznika czasu okresowej retransmisji algorytmu retransmisji Triekle.
TeardownTrickleRetransmit(void)
void
Wyłącz mechanizm retransmisji w aplikacji Trickle, anulując okresowe liczniki czasu w Trickle i uwalniając bufor wiadomości zawierający wiadomość Weave.
UseEphemeralUDPPort(void) const
bool
Wskazuje, czy wiadomości wychodzące wysyłane przez wymianę mają być wysyłane z lokalnego efemerycznego portu UDP.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Wyślij wiadomość z opóźnieniem, aby powiadomić węzeł nadawcy, że wcześniej wysłana wiadomość będzie dostarczana do adresata z spodziewanym opóźnieniem.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Wyślij komunikat Throttle Flow do węzła równorzędnego, aby poprosić o ograniczenie wysyłania wiadomości.

Typy publiczne

@34

 @34
Właściwości
kSendFlag_AlreadyEncoded

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

kSendFlag_AutoRetrans

Określa, że automatyczne ponowne przesyłanie jest włączone.

kSendFlag_DefaultMulticastSourceAddress

Określa, że podczas wysyłania wiadomości multicast IPv6 ma być używany domyślny adres źródłowy IPv6.

kSendFlag_DelaySend

Służy do wskazania, że wysłanie bieżącej wiadomości musi się opóźnić.

kSendFlag_ExpectResponse

Służy do wskazania, że odpowiedź jest oczekiwana w określonym czasie.

kSendFlag_FromInitiator

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

kSendFlag_MulticastFromLinkLocal

Wycofany alias dla kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Podczas wysyłania wiadomości ukryj funkcję automatycznego potwierdzania żądań.

kSendFlag_RequestAck

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

kSendFlag_RetainBuffer

Służy do wskazania, że po wysłaniu bufor wiadomości nie powinien zostać zwolniony.

kSendFlag_RetransmissionTrickle

Służy do określania wymagań dotyczących ponownego przesyłania w przypadku Trickle.

kSendFlag_ReuseMessageId

Wskazuje, że można ponownie użyć identyfikatora wiadomości w nagłówku wiadomości.

kSendFlag_ReuseSourceId

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

@35

 @35
Właściwości
kGetPeerDescription_MaxLength

Maksymalna długość ciągu znaków (łącznie ze znakiem NUL) zwracanym przez funkcję GetPeerDescription().

ConnectionClosedFunct

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

Ta funkcja jest wywołaniem zwrotnym aplikacji, który zostanie wywołany 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 podstawowego komunikatu o błędzie.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] keyErr
Typ WEAVE_ERROR podany w głównym 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 jest wywołaniem zwrotnym 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 odpowiedniego profilu.
[in] payload
Wskaźnik do obiektu PacketBuffer zawierającego ładunek wiadomości.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma być wywoływane po upływie czasu oczekiwania na odebranie wiadomości z odpowiedzią.

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

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma zostać uruchomione 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żania czasu oczekiwania w tym ExchangeContext (w milisekundach).

WRMPAckRcvdFunct

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

Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma być wywoływane po otrzymaniu potwierdzenia dla wiadomości Weave, która zażądała takiego potwierdzenia w ramach protokołu Weave Reliable Messaging Protocol.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] msgCtxt
Wskaźnik do konkretnego obiektu kontekstu powiązanego z potwierdzoną pierwotną wiadomością.

WRMPPauseRcvdFunct

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

Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma być wywoływane po otrzymaniu komunikatu Throttle lub Delayed Delivery w ramach protokołu Weave Reliable Messaging Protocol.

Każdemu z tych wiadomości towarzyszy wartość czasu (w milisekundach), która określa czas wstrzymania wysyłania wiadomości Weave w kontekście 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 jest wywołaniem zwrotnym aplikacji w przypadku wystąpienia błędu podczas wysyłania komunikatu Weave.

Szczegóły
Parametry
[in] ec
Wskaźnik do obiektu ExchangeContext.
[in] err
Typ WEAVE_ERROR, który wystąpił podczas wysyłania wiadomości.
[in] msgCtxt
Wskaźnik do konkretnego obiektu kontekstu powiązanego z pierwotną wiadomością, której dotyczy raport.

Atrybuty publiczne

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Wartość logiczna wskazująca, czy w danej komunikacji duplikaty wiadomości są dozwolone.

AppState

void * AppState

Wskaźnik do obiektu stanu określonej aplikacji.

Wada

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

[ODCZYT] Identyfikator przypisanej giełdy.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[TYLKO DO ODCZYTU] Posiadanie konta menedżera giełdy.

KeyId

uint16_t KeyId

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

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Wywołanie zwrotne aplikacji dotyczące otrzymanego potwierdzenia.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Wywołanie zwrotne aplikacji dla odebranej wiadomości o opóźnionym dostarczaniu.

OnKeyError

KeyErrorFunct OnKeyError

Ta funkcja jest wywołaniem zwrotnym aplikacji, które ma być wywoływane po otrzymaniu komunikatu o błędzie klucza z połączenia równorzędnego.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Wywołanie zwrotne aplikacji z powodu błędu podczas wysyłania.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Wywołanie zwrotne aplikacji dla odebranej wiadomości Throttle.

PeerAddr

IPAddress PeerAddr

[READ ONLY] 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 peera.

(ma znaczenie tylko dla UDP).

PeerNodeId

uint64_t PeerNodeId

[READ ONLY] 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 czas oczekiwania na odpowiedź.

RetransInterval

uint32_t RetransInterval

czas między kolejnymi przesłaniami (w milisekundach), Wartość 0 wyłącza ponowne przesyłanie.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Wersja protokołu wiadomości 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 

Wskazuje, czy przy wysyłaniu wiadomości ma być wymagane potwierdzenie.

CancelRetrans

void CancelRetrans(
  void
)

Anuluj mechanizm retransmisji usługi Trikile.

Zamknij

void Close(
  void
)

Z gracją zamknij kontekst wymiany.

To wywołanie zmniejsza liczbę plików referencyjnych i rezygnuje z wymiany, gdy liczba plików referencyjnych spadnie do 0.

EncodeExchHeader

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

Zakoduj nagłówek wymiany 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 odpowiedniego profilu.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer niezbędnego 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 udało się.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

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

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Pobierz aktualny limit czasu ponownego przesyłania.

W zależności od tego, czy ExchangeContext ma aktywną wymianę wiadomości ze swoim połączeniem równorzędnym, może to być początkowy lub aktywny limit czasu ponownego przesyłania.

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

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

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

Szczegóły
Parametry
[in] buf
Wskaźnik do bufora, w którym ma zostać zapisany ciąg. Podany bufor powinien być co najmniej tak duży, jak kGetPeerDescription_MaxLength. Jeśli podasz mniejszy bufor, ciąg znaków zostanie skrócony w celu dopasowania. We wszystkich przypadkach wynik będzie zawierał znak zakończenia NUL.
[in] bufSize
Rozmiar bufora wskazywanego przez buf.

HandleTrickleMessage

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

Obsługuj przekaz otrzymywany w kontekście wymiany.

Szczegóły
Parametry
[in] pktInfo
Wskaźnik do obiektu IPPacketInfo.
[in] msgInfo
Wskaźnik do struktury informacyjnej wiadomości weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

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

Szczegóły
Zwroty
Zwraca wartość „true” (prawda) jeśli wymagane jest potwierdzenie, w przeciwnym razie ma wartość 'false'.

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Określ, czy na tej wymiany została odebrana co najmniej 1 wiadomość od podmiotu równorzędnego.

Szczegóły
Zwroty
Zwraca wartość „true” (prawda) jeśli otrzymano wiadomość, a w przeciwnym razie ma 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 w tej wymianie.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Określ, czy ExchangeContext ma powiązane aktywne WeaveConnection.

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

IsInitiator

bool IsInitiator(
  void
) const 

Ustal, czy dany kontekst jest inicjatorem wymiany.

Szczegóły
Zwroty
Zwraca wartość „true” (prawda) a w przeciwnym razie – wartość „false” (fałsz).

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Określ, czy oczekuje się odpowiedzi na wiadomości wysyłane przez tę wymianę.

Szczegóły
Zwroty
Zwraca wartość „true” (prawda) jeśli oczekiwano odpowiedzi, w przeciwnym razie ma wartość „false”;

Wersja

void Release(
  void
)

Odniesienie do wydania w kontekście tej giełdy.

Jeśli odliczanie spadnie do jednego, zamknij kontekst, zresetuj wszystkie wywołania zwrotne aplikacji i zatrzymaj wszystkie liczniki czasu.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Wyślij wiadomość Common::Null.

Szczegóły
Zwracane wartości
WEAVE_ERROR_NO_MEMORY
Jeśli nie ma dostępnych pakietów PacketBuffer.
WEAVE_NO_ERROR
czy metoda się udała lub 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ść w Weave w ramach tej wymiany.

Szczegóły
Parametry
[in] profileId
Identyfikator profilu wiadomości Weave, która ma zostać wysłana.
[in] msgType
Typ wiadomości odpowiedniego profilu.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer zawierającego wiadomość Weave.
[in] sendFlags
Flagi ustawione przez aplikację dla wysyłanej wiadomości Weave.
[in] msgCtxt
Wskaźnik do obiektu kontekstu konkretnej aplikacji, który ma być powiązany z wysyłaną wiadomością.
Zwracane wartości
WEAVE_ERROR_INVALID_ARGUMENT
jeśli do interfejsu SendMessage API przekazano nieprawidłowy argument.
WEAVE_ERROR_SEND_THROTTLED
jeśli ten kontekst wymiany został ograniczony podczas korzystania z niezawodnego protokołu komunikacyjnego Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
jeśli występuje niezgodność między konkretną operację wysyłania a obsługiwaną wersją protokołu wiadomości Weave. Ten błąd byłby generowany na przykład przy próbie użycia semantyki Weave Reliable Messaging w wersji protokołu wiadomości Weave w wersji 1.
WEAVE_ERROR_NOT_CONNECTED
jeśli kontekst był powiązany z połączeniem, które jest teraz zamknięte.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan kontekstu giełdy jest nieprawidłowy.
WEAVE_NO_ERROR
czy warstwa Weave pomyślnie wysłała komunikat 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ść w Weave w ramach tej wymiany.

Szczegóły
Parametry
[in] profileId
Identyfikator profilu wiadomości Weave, która ma zostać wysłana.
[in] msgType
Typ wiadomości odpowiedniego profilu.
[in] msgBuf
Wskaźnik do obiektu PacketBuffer zawierającego 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 konkretnej aplikacji, który ma być powiązany z wysyłaną wiadomością.
Zwracane wartości
WEAVE_ERROR_INVALID_ARGUMENT
jeśli do interfejsu SendMessage API przekazano nieprawidłowy argument.
WEAVE_ERROR_SEND_THROTTLED
jeśli ten kontekst wymiany został ograniczony podczas korzystania z niezawodnego protokołu komunikacyjnego Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
jeśli występuje niezgodność między konkretną operację wysyłania a obsługiwaną wersją protokołu wiadomości Weave. Ten błąd byłby generowany na przykład przy próbie użycia semantyki Weave Reliable Messaging w wersji protokołu wiadomości Weave w wersji 1.
WEAVE_ERROR_NOT_CONNECTED
jeśli kontekst był powiązany z połączeniem, które jest teraz zamknięte.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan kontekstu giełdy jest nieprawidłowy.
WEAVE_NO_ERROR
czy warstwa Weave pomyślnie wysłała komunikat do warstwy sieciowej.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Określ, czy trzeba wysłać potwierdzenie z powrotem do połączenia równorzędnego na tej giełdzie.

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

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

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

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

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Określ, czy potwierdzenie ma być wysyłane przy każdym wysyłaniu wiadomości.

Szczegóły
Parametry
[in] autoReqAck
Wartość logiczna wskazująca, czy przy każdym wysyłaniu wiadomości ma być wymagane potwierdzenie.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Ustaw bit flagi kFlagConnectionClosed.

Ta flaga jest ustawiana po zamknięciu połączenia WeaveConnection powiązanego z obiektem ExchangeContext.

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

SetDropAck

void SetDropAck(
  bool inDropAck
)

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

Tylko do użytku wewnętrznego – do debugowania.

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

SetInitiator

void SetInitiator(
  bool inInitiator
)

Ustaw bit flagi kFlagInitiator.

Ta flaga jest ustawiana przez 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 została odebrana wiadomość od partnera na tej wymianie.

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

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Ustaw, jeśli w ostatniej wiadomości odebranej w ramach tej wymiany wysłano prośbę o potwierdzenie.

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

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Określ, czy odpowiedź ma być oczekiwana na tej giełdzie.

Szczegóły
Parametry
[in] inResponseExpected
Wartość logiczna wskazująca, czy na tej giełdzie 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ć zwolnione 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 kroczącej, ustawiając odpowiedni interwał retransmisji i próg retransmisji.

Szczegóły
Parametry
[in] retransInterval
Interwał retransmisji w algorytmie retransmisji Trickle.
[in] threshold
Maksymalna liczba retransmisji wiadomości.
[in] timeout
Maksymalny czas oczekiwania przed anulowaniem licznika czasu ponownego przesyłania Trickle.
Zwroty
WEAVE_NO_ERROR, jeśli konfiguracja logu czasu zakończyła się powodzeniem, a w przeciwnym razie błąd INET_ERROR zmapowany na WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Wskazuje, czy połączenie Weave powiązane z giełdą ma zostać zwolnione po zwolnieniu giełdy.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

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

Tylko do użytku wewnętrznego – do debugowania.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Uruchom mechanizm licznika czasu okresowej retransmisji algorytmu retransmisji Triekle.

Szczegóły
Zwroty
Jeśli operacja się uda, WEAVE_NO_ERROR, w przeciwnym razie błąd INET_ERROR zostanie zmapowany na WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Wyłącz mechanizm retransmisji w aplikacji Trickle, anulując okresowe liczniki czasu w Trickle i uwalniając bufor wiadomości zawierający wiadomość Weave.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Wskazuje, czy wiadomości wychodzące wysyłane przez wymianę 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ść z opóźnieniem, aby powiadomić węzeł nadawcy, że wcześniej wysłana wiadomość będzie dostarczana do adresata z spodziewanym opóźnieniem.

Jedną z możliwych przyczyn opóźnienia dostarczenia wiadomości przed dostarczeniem jest sytuacja, w której węzeł końcowy odbiorcy jest senny. 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, aby wywnioskować o opóźnionym dostarczaniu. Po otrzymaniu takiej wiadomości nadawca powinien skorygować liczniki czasu ponownego przesyłania dla wiadomości, które wymagają potwierdzenia.

Szczegóły
Parametry
[in] pauseTimeMillis
Czas (w milisekundach), o którym ma być opóźnione wysłanie wcześniej wysłanej wiadomości.
[in] delayedNodeId
Identyfikator węzła równorzędnego, do którego dostarczenie wiadomości się opóźniło.
Zwracane wartości
WEAVE_ERROR_INVALID_ARGUMENT
jeśli do interfejsu SendMessage API przekazano nieprawidłowy argument.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
jeśli występuje niezgodność między konkretną operację wysyłania a obsługiwaną wersją protokołu wiadomości Weave. Ten błąd byłby generowany na przykład przy próbie użycia semantyki Weave Reliable Messaging w wersji protokołu wiadomości Weave w wersji 1.
WEAVE_ERROR_NOT_CONNECTED
jeśli kontekst był powiązany z połączeniem, które jest teraz zamknięte.
WEAVE_ERROR_INCORRECT_STATE
jeśli stan kontekstu giełdy jest nieprawidłowy.
WEAVE_NO_ERROR
czy warstwa Weave pomyślnie wysłała komunikat do warstwy sieciowej.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Wyślij komunikat Throttle Flow do węzła równorzędnego, aby poprosić o ograniczenie wysyłania wiadomości.

Szczegóły
Parametry
[in] pauseTimeMillis
Czas (w milisekundach), przez jaki adresat ma ograniczać wysyłanie wiadomości.
Zwracane wartości
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli do tego interfejsu SendMessage API przekazano nieprawidłowy argument.
WEAVE_ERROR_SEND_THROTTLED
Określa, czy ten kontekst wymiany został ograniczony podczas korzystania z niezawodnego protokołu przesyłania wiadomości Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Niezgodność między konkretną operację wysyłania a obsługiwaną wersją protokołu wiadomości Weave. Ten błąd byłby generowany na przykład przy próbie użycia semantyki Weave Reliable Messaging w wersji protokołu wiadomości Weave w wersji 1.
WEAVE_ERROR_NOT_CONNECTED
Jeśli kontekst był powiązany z połączeniem, które jest teraz zamknięte.
WEAVE_ERROR_INCORRECT_STATE
Jeśli stan kontekstu giełdy jest nieprawidłowy.
WEAVE_NO_ERROR
Jeśli warstwa Weave pomyślnie wysłała komunikat do warstwy sieciowej.