class ExchangeContext
Defined at line 120 of file gen/third_party/openweave-core/src/include/Weave/Core/WeaveExchangeMgr.h
This class represents an ongoing conversation (ExchangeContext) between two or more nodes.
It defines methods for encoding and communicating Weave messages within an ExchangeContext
over various transport mechanisms, for example, TCP, UDP, or Weave Reliable Messaging.
Public Members
WeaveExchangeManager * ExchangeMgr
uint16_t mMsgProtocolVersion
WeaveConnection * Con
uint64_t PeerNodeId
IPAddress PeerAddr
InterfaceId PeerIntf
uint16_t PeerPort
uint16_t ExchangeId
void * AppState
bool AllowDuplicateMsgs
uint8_t EncryptionType
uint16_t KeyId
uint32_t RetransInterval
Timeout ResponseTimeout
WRMPConfig mWRMPConfig
MessageReceiveFunct OnMessageReceived
ResponseTimeoutFunct OnResponseTimeout
RetransmissionTimeoutFunct OnRetransmissionTimeout
ConnectionClosedFunct OnConnectionClosed
KeyErrorFunct OnKeyError
WRMPPauseRcvdFunct OnThrottleRcvd
WRMPPauseRcvdFunct OnDDRcvd
WRMPSendErrorFunct OnSendError
WRMPAckRcvdFunct OnAckRcvd
Public Methods
bool IsInitiator ()
bool IsConnectionClosed ()
bool IsResponseExpected ()
void SetInitiator (bool inInitiator)
void SetConnectionClosed (bool inConnectionClosed)
bool ShouldDropAck ()
bool IsAckPending ()
void SetDropAck (bool inDropAck)
void SetAckPending (bool inAckPending)
bool HasPeerRequestedAck ()
void SetPeerRequestedAck (bool inPeerRequestedAck)
bool HasRcvdMsgFromPeer ()
void SetMsgRcvdFromPeer (bool inMsgRcvdFromPeer)
WEAVE_ERROR WRMPFlushAcks ()
uint32_t GetCurrentRetransmitTimeout ()
void SetResponseExpected (bool inResponseExpected)
bool AutoRequestAck ()
void SetAutoRequestAck (bool autoReqAck)
bool GetAutoReleaseKey ()
void SetAutoReleaseKey (bool autoReleaseKey)
bool ShouldAutoReleaseConnection ()
void SetShouldAutoReleaseConnection (bool autoReleaseCon)
bool UseEphemeralUDPPort ()
Defined at line 555 of file gen/third_party/openweave-core/src/include/Weave/Core/WeaveExchangeMgr.h
WEAVE_ERROR SendMessage (uint32_tprofileId,uint8_tmsgType,PacketBuffer *msgPayload,uint16_tsendFlags,void *msgCtxt)
WEAVE_ERROR SendMessage (uint32_tprofileId,uint8_tmsgType,PacketBuffer *msgBuf,uint16_tsendFlags,WeaveMessageInfo *msgInfo,void *msgCtxt)
WEAVE_ERROR SendCommonNullMessage ()
WEAVE_ERROR EncodeExchHeader (WeaveExchangeHeader *exchangeHeader,uint32_tprofileId,uint8_tmsgType,PacketBuffer *msgBuf,uint16_tsendFlags)
void TeardownTrickleRetransmit ()
WEAVE_ERROR SetupTrickleRetransmit (uint32_tretransInterval,uint8_tthreshold,uint32_ttimeout)
void CancelRetrans ()
void HandleTrickleMessage (const IPPacketInfo * pktInfo, const WeaveMessageInfo * msgInfo)
WEAVE_ERROR WRMPSendThrottleFlow (uint32_t PauseTimeMillis)
WEAVE_ERROR WRMPSendDelayedDelivery (uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
void AddRef ()
in order to use reference counting (see refCount below)
we use a hold/free paradigm where users of the exchange
can hold onto it while it's out of their direct control
to make sure it isn't closed before everyone's ready.
void Close ()
void Abort ()
void Release ()
WEAVE_ERROR StartTimerT ()
void GetPeerDescription (char * buf, uint32_t bufSize)
Enumerations
enum (unnamed)
| Name | Value | Comments |
|---|---|---|
| kSendFlag_AutoRetrans | 0x0001 |
Used to indicate that automatic retransmission is enabled. |
| kSendFlag_ExpectResponse | 0x0002 |
Used to indicate that a response is expected within a specified timeout. |
| kSendFlag_RetransmissionTrickle | 0x0004 |
Used to indicate the requirement of retransmissions for Trickle. |
| kSendFlag_DelaySend | 0x0008 |
Used to indicate that the sending of the current message needs to be delayed. |
| kSendFlag_ReuseMessageId | 0x0010 |
Used to indicate that the message ID in the message header can be reused. |
| kSendFlag_ReuseSourceId | 0x0020 |
Used to indicate that the source node ID in the message header can be reused. |
| kSendFlag_RetainBuffer | 0x0040 |
Used to indicate that the message buffer should not be freed after sending. |
| kSendFlag_AlreadyEncoded | 0x0080 |
Used to indicate that the message is already encoded. |
| kSendFlag_DefaultMulticastSourceAddress | 0x0100 |
Used to indicate that default IPv6 source address selection should be used when |
| kSendFlag_FromInitiator | 0x0200 |
Used to indicate that the current message is the initiator of the exchange. |
| kSendFlag_RequestAck | 0x0400 |
Used to send a WRM message requesting an acknowledgment. |
| kSendFlag_NoAutoRequestAck | 0x0800 |
Suppress the auto-request acknowledgment feature when sending a message. |
| kSendFlag_MulticastFromLinkLocal | kSendFlag_DefaultMulticastSourceAddress | -- |
Defined at line 146 of file gen/third_party/openweave-core/src/include/Weave/Core/WeaveExchangeMgr.h
enum (unnamed)
| Name | Value |
|---|---|
| kGetPeerDescription_MaxLength | nl::Weave::kWeavePeerDescription_MaxLength |
Defined at line 338 of file gen/third_party/openweave-core/src/include/Weave/Core/WeaveExchangeMgr.h
Friends
class WeaveMessageLayer
class WeaveExchangeManager