|
reSIProcate
SIP stack, Dialog Usage Manager and related libraries
|
#include <WsTransport.hxx>
Public Member Functions | |
| RESIP_HeapCount (WsTransport) | |
| WsTransport (Fifo< TransactionMessage > &fifo, int portNum, IpVersion version, const Data &interfaceObj, AfterSocketCreationFuncPtr socketFunc=nullptr, Compression &compression=Compression::Disabled, unsigned transportFlags=0, std::shared_ptr< WsConnectionValidator >=nullptr, std::shared_ptr< WsCookieContextFactory >=std::make_shared< BasicWsCookieContextFactory >()) | |
Public Member Functions inherited from resip::TcpBaseTransport | |
| TcpBaseTransport (Fifo< TransactionMessage > &fifo, int portNum, IpVersion version, const Data &interfaceName, AfterSocketCreationFuncPtr socketFunc, Compression &compression, unsigned transportFlags=0, const Data &netNs=Data::Empty) | |
| virtual | ~TcpBaseTransport () |
| virtual void | processPollEvent (FdPollEventMask mask) |
| Called by PollGrp when activity is possible. | |
| virtual void | process (FdSet &fdset) |
| If there is work to do, this is the method that does it. | |
| virtual void | buildFdSet (FdSet &fdset) |
| Adds the Transport's socket FD to the appropriate read or write sets as applicable. | |
| virtual bool | isReliable () const |
| virtual bool | isDatagram () const |
| virtual void | process () |
| Version of process to be invoked periodically when using callback-based IO (via FdPollGrp). | |
| virtual void | setPollGrp (FdPollGrp *grp) |
| virtual void | setRcvBufLen (int buflen) |
| ConnectionManager & | getConnectionManager () |
| const ConnectionManager & | getConnectionManager () const |
| virtual void | invokeAfterSocketCreationFunc () const |
Public Member Functions inherited from resip::InternalTransport | |
| InternalTransport (Fifo< TransactionMessage > &rxFifo, int portNum, IpVersion version, const Data &interfaceObj, AfterSocketCreationFuncPtr socketFunc=0, Compression &compression=Compression::Disabled, unsigned transportFlags=0, const Data &netNs=Data::Empty) | |
| virtual | ~InternalTransport () |
| virtual bool | isFinished () const |
| virtual bool | hasDataToSend () const |
| only applies to transports that shareStackProcessAndSelect | |
| virtual bool | shareStackProcessAndSelect () const |
| Returns true if this Transport should be included in the FdSet processing loop, false if the Transport will provide its own cycles. | |
| virtual void | startOwnProcessing () |
| transports that returned false to shareStackProcessAndSelect() shouldn't put messages into the fifo until this is called | |
| void | bind () |
| virtual unsigned int | getFifoSize () const |
| virtual void | send (std::unique_ptr< SendData > data) |
| virtual void | poke () |
| Called when a writer is done adding messages to the TxFifo; this is used to interrupt the select call if the Transport is running in its own thread. | |
| virtual void | setCongestionManager (CongestionManager *manager) |
Public Member Functions inherited from resip::Transport | |
| void | setSipMessageLoggingHandler (std::shared_ptr< SipMessageLoggingHandler > handler) |
| void | addSipMessageLoggingHandler (std::shared_ptr< SipMessageLoggingHandler > handler) |
| void | setSipMessageLoggingHandlers (const SipMessageLoggingHandlerList &handlers) |
| void | unsetSipMessageLoggingHandler () noexcept |
| SipMessageLoggingHandlerList | getSipMessageLoggingHandlers () const noexcept |
| Transport (Fifo< TransactionMessage > &rxFifo, const GenericIPAddress &address, const Data &tlsDomain=Data::Empty, AfterSocketCreationFuncPtr socketFunc=nullptr, Compression &compression=Compression::Disabled) | |
| Transport (Fifo< TransactionMessage > &rxFifo, int portNum, IpVersion version, const Data &interfaceObj, const Data &tlsDomain=Data::Empty, AfterSocketCreationFuncPtr socketFunc=nullptr, Compression &compression=Compression::Disabled, unsigned transportFlags=0, const Data &netNs=Data::Empty) | |
| virtual | ~Transport () |
| virtual void | onReload () |
| std::unique_ptr< SendData > | makeSendData (const Tuple &tuple, const Data &data, const Data &tid, const Data &sigcompId=Data::Empty) |
| virtual unsigned int | getTimeTillNextProcessMS () |
| Returns the maximum timeout this object is willing to tolerate on the select call that is to be made, to prevent starvation of work that is not IO-based. | |
| void | flowTerminated (const Tuple &flow, TransportFailure::FailureReason failureReason, int failureSubCode, const Data &failureString, const std::list< Data > additionalFailureStrings) |
| Posts a ConnectionTerminated message to TransactionMessage Fifo. | |
| void | keepAlivePong (const Tuple &flow) |
| void | fail (const Data &tid, TransportFailure::FailureReason reason=TransportFailure::Failure, int subCode=0) |
| Posts a TransportFailure to the TransactionMessage Fifo. | |
| void | setTcpConnectState (const Data &tid, TcpConnectState::State state) |
| Posts a TcpConnectState to the TransactionMessage Fifo. | |
| const Data & | interfaceName () const |
| int | port () const |
| bool | isV4 () const |
| IpVersion | ipVersion () const |
| const Data & | tlsDomain () const |
| const sockaddr & | boundInterface () const |
| const Tuple & | getTuple () const |
| const TransportType | transport () const |
| const Data & | netNs () const |
| virtual bool | hasSpecificContact () const |
| bool | basicCheck (const SipMessage &msg) |
| Perform basic sanity checks on message. | |
| void | makeFailedResponse (const SipMessage &msg, int responseCode=400, const char *warning=nullptr) |
| std::unique_ptr< SendData > | make503 (SipMessage &msg, uint16_t retryAfter) |
| std::unique_ptr< SendData > | make100 (SipMessage &msg) |
| void | setRemoteSigcompId (SipMessage &msg, Data &id) |
| virtual void | shutdown () |
| This starts shutting-down procedures for this Transport. | |
| virtual bool | isShuttingDown () |
| bool | operator== (const Transport &rhs) const |
| void | callSocketFunc (Socket sock) const |
| bool | setDscp (int dscp) |
| Sets the DSCP class this transport puts on its sockets, and returns whether it was accepted. | |
| int | effectiveDscp () const |
| The class to write to a socket right now, or -1 to leave it alone. | |
| int | effectiveDscp (int wanted) const |
| effectiveDscp() for a value the caller has already read. | |
| void | applySocketOptions (Socket sock) const |
| The one place a socket of this transport is configured. | |
| void | applyDscpToOwnSockets () |
| Re-runs the per-socket set-up on every socket this transport holds – the listener, and each established connection. | |
| CongestionManager::RejectionBehavior | getRejectionBehaviorForIncoming () const |
| void | flushStateMacFifo () |
| uint32_t | getExpectedWaitForIncoming () const |
| virtual void | pushRxMsgUp (SipMessage *msg) |
| unsigned int | getKey () const |
| void | setKey (unsigned int pKey) |
Public Member Functions inherited from resip::FdSetIOObserver | |
| FdSetIOObserver () | |
| virtual | ~FdSetIOObserver () |
Public Member Functions inherited from resip::FdPollItemIf | |
| FdPollItemIf () | |
| virtual | ~FdPollItemIf () |
Public Member Functions inherited from resip::WsBaseTransport | |
| RESIP_HeapCount (WsBaseTransport) | |
| WsBaseTransport (std::shared_ptr< WsConnectionValidator >=nullptr, std::shared_ptr< WsCookieContextFactory >=std::make_shared< BasicWsCookieContextFactory >()) | |
| WsBaseTransport (const WsBaseTransport &)=delete | |
| WsBaseTransport (WsBaseTransport &&)=delete | |
| virtual | ~WsBaseTransport ()=default |
| WsBaseTransport & | operator= (const WsBaseTransport &)=delete |
| WsBaseTransport & | operator= (WsBaseTransport &&)=delete |
| std::shared_ptr< WsCookieContextFactory > | cookieContextFactory () const noexcept |
Protected Member Functions | |
| Connection * | createConnection (const Tuple &who, Socket fd, bool server=false) override |
| Makes new Connection using provided socket. | |
Protected Member Functions inherited from resip::TcpBaseTransport | |
| virtual void | init () |
| Performs constructor activities that depend on virtual functions specified by derived classes. | |
| void | processAllWriteRequests () |
| Forms a connection if one doesn't exist, moves requests to the appropriate connection's fifo. | |
| int | processListen () |
| This doesn't exist anywhere that I can find? !kw! void sendFromRoundRobin(FdSet& fdset);. | |
| Connection * | makeOutgoingConnection (const Tuple &dest, TransportFailure::FailureReason &failCode, int &subCode) |
Protected Member Functions inherited from resip::InternalTransport | |
| virtual Socket | getListenerSocket () const |
| The transport's own listening or bound socket, or INVALID_SOCKET for a transport that holds none. | |
Protected Member Functions inherited from resip::Transport | |
| void | drainDscpRefresh () |
| Serves a pending refresh and a pending report. | |
| void | setTlsDomain (const Data &domain) |
Additional Inherited Members | |
Public Types inherited from resip::Transport | |
| using | SipMessageLoggingHandlerList = std::vector< std::shared_ptr< SipMessageLoggingHandler > > |
Static Public Member Functions inherited from resip::InternalTransport | |
| static Socket | socket (TransportType type, IpVersion ipVer) |
Static Public Member Functions inherited from resip::Transport | |
| static void | error (int e) |
| Generates a generic log for the platform specific socket error number. | |
| static Data | errorToString (int e) |
| static void | stampReceived (SipMessage *request) |
Protected Attributes inherited from resip::InternalTransport | |
| Socket | mFd |
| SelectInterruptor | mSelectInterruptor |
| FdPollItemHandle | mInterruptorHandle |
| Fifo< SendData > | mTxFifo |
| ConsumerFifoBuffer< SendData > | mTxFifoOutBuffer |
| FdPollGrp * | mPollGrp |
| FdPollItemHandle | mPollItemHandle |
Protected Attributes inherited from resip::Transport | |
| Data | mInterface |
| Tuple | mTuple |
| CongestionManager * | mCongestionManager |
| ProducerFifoBuffer< TransactionMessage > | mStateMachineFifo |
| bool | mShuttingDown |
| AfterSocketCreationFuncPtr | mSocketFunc |
| Compression & | mCompression |
| unsigned | mTransportFlags |
| std::atomic< int > | mDscp { -1 } |
| the class to write, -1 for "do not mark" | |
| std::atomic< bool > | mDscpRefreshPending { false } |
| Set by setDscp() when the value changes, cleared by the owning thread's refresh. | |
| std::atomic< bool > | mDscpReportPending { false } |
| Set by every setDscp() call, cleared by the owning thread's report, so a reload that changed nothing still says what the listener carries. | |
| std::atomic< bool > | mWasMarkRequested { false } |
| Whether this transport has asked a socket to carry a class that a clear would have to undo. | |
Protected Attributes inherited from resip::WsBaseTransport | |
| std::shared_ptr< WsConnectionValidator > | mConnectionValidator |
| std::shared_ptr< WsCookieContextFactory > | mCookieContextFactory |
Static Protected Attributes inherited from resip::TcpBaseTransport | |
| static const size_t | MaxWriteSize = 4096 |
| static const size_t | MaxReadSize = 4096 |
Definition at line 19 of file WsTransport.hxx.
| WsTransport::WsTransport | ( | Fifo< TransactionMessage > & | fifo, |
| int | portNum, | ||
| IpVersion | version, | ||
| const Data & | interfaceObj, | ||
| AfterSocketCreationFuncPtr | socketFunc = nullptr, |
||
| Compression & | compression = Compression::Disabled, |
||
| unsigned | transportFlags = 0, |
||
| std::shared_ptr< WsConnectionValidator > | connectionValidator = nullptr, |
||
| std::shared_ptr< WsCookieContextFactory > | cookieContextFactory = std::make_shared<BasicWsCookieContextFactory>() |
||
| ) |
Definition at line 20 of file WsTransport.cxx.
|
overrideprotectedvirtual |
Makes new Connection using provided socket.
Implements resip::TcpBaseTransport.
Definition at line 42 of file WsTransport.cxx.
| resip::WsTransport::RESIP_HeapCount | ( | WsTransport | ) |