|
reSIProcate
SIP stack, Dialog Usage Manager and related libraries
|
#include <TransportSelector.hxx>
Classes | |
| class | TlsTransportKey |
Public Types | |
| enum | TransmitState { Unsent , Sent } |
| transmit results in msg->resolve() being called to either kick off dns resolution or to pick the next tuple and will cause the message to be encoded and via updated More... | |
Public Member Functions | |
| TransportSelector (Fifo< TransactionMessage > &fifo, Security *security, DnsStub &dnsStub, Compression &compression, bool useDnsVip) | |
| virtual | ~TransportSelector () |
| bool | hasDataToSend () const |
| void | shutdown () |
| Shuts down all transports. | |
| bool | isFinished () const |
| Returns true if all Transports have their buffers cleared, false otherwise. | |
| void | setPollGrp (FdPollGrp *pollGrp) |
| Configure a PollGrp to use (instead of buildFdSet/process) Must be called before adding any transports. | |
| void | createSelectInterruptor () |
| Called when the TransportSelector will be running in a different. | |
| void | process (FdSet &fdset) |
| Calls process on all suitable transports NOTE that TransportSelector no longer handles DNSInterface NOTE not used with pollGrp. | |
| void | process () |
| void | buildFdSet (FdSet &fdset) |
| Builds an FdSet comprised of all FDs from all suitable Transports. | |
| void | poke () |
| Causes transport process loops to be interrupted if there is stuff in their transmit fifos. | |
| void | addTransport (std::unique_ptr< Transport > transport, bool isStackRunning) |
| Add/Remove a transport. | |
| void | removeTransport (unsigned int transportKey) |
| DnsResult * | createDnsResult (DnsHandler *handler) |
| DNS Resolution. | |
| void | dnsResolve (DnsResult *result, SipMessage *msg) |
| TransmitState | transmit (SipMessage *msg, Tuple &target, SendData *sendData=0) |
| void | retransmit (const SendData &msg) |
| Resend to the same transport as last time. | |
| void | closeConnection (const Tuple &peer) |
| unsigned int | sumTransportFifoSizes () const |
| unsigned int | getTimeTillNextProcessMS () |
| Fifo< TransactionMessage > & | stateMacFifo () |
| void | registerMarkListener (MarkListener *listener) |
| void | unregisterMarkListener (MarkListener *listener) |
| void | setEnumSuffixes (const std::vector< Data > &suffixes) |
| void | terminateFlow (const resip::Tuple &flow) |
| void | enableFlowTimer (const resip::Tuple &flow) |
| bool | setUdpOnlyOnNumeric (bool value) |
| bool | getUdpOnlyOnNumeric () const |
| void | setCongestionManager (CongestionManager *manager) |
| void | invokeAfterSocketCreationFunc (TransportType type) |
Static Public Member Functions | |
| static Tuple | getFirstInterface (bool is_v4, TransportType type) |
Protected Member Functions | |
| Transport * | findTransportBySource (Tuple &src, const SipMessage *msg) const |
| Transport * | findTransportByDest (const Tuple &dest) |
Friends | |
| class | TestTransportSelector |
| class | SipStack |
Definition at line 59 of file TransportSelector.hxx.
transmit results in msg->resolve() being called to either kick off dns resolution or to pick the next tuple and will cause the message to be encoded and via updated
| Enumerator | |
|---|---|
| Unsent | |
| Sent | |
Definition at line 112 of file TransportSelector.hxx.
| TransportSelector::TransportSelector | ( | Fifo< TransactionMessage > & | fifo, |
| Security * | security, | ||
| DnsStub & | dnsStub, | ||
| Compression & | compression, | ||
| bool | useDnsVip | ||
| ) |
Definition at line 92 of file TransportSelector.cxx.
|
virtual |
Definition at line 126 of file TransportSelector.cxx.
| void TransportSelector::addTransport | ( | std::unique_ptr< Transport > | transport, |
| bool | isStackRunning | ||
| ) |
Add/Remove a transport.
Definition at line 190 of file TransportSelector.cxx.
| void TransportSelector::buildFdSet | ( | FdSet & | fdset | ) |
Builds an FdSet comprised of all FDs from all suitable Transports.
Definition at line 465 of file TransportSelector.cxx.
| void TransportSelector::closeConnection | ( | const Tuple & | peer | ) |
Definition at line 1436 of file TransportSelector.cxx.
| DnsResult * TransportSelector::createDnsResult | ( | DnsHandler * | handler | ) |
DNS Resolution.
jf! the problem here is that DnsResult is returned after looking
dcm! – now 2-phase to fix this
Definition at line 592 of file TransportSelector.cxx.
| void TransportSelector::createSelectInterruptor | ( | ) |
Called when the TransportSelector will be running in a different.
Definition at line 452 of file TransportSelector.cxx.
| void TransportSelector::dnsResolve | ( | DnsResult * | result, |
| SipMessage * | msg | ||
| ) |
Definition at line 598 of file TransportSelector.cxx.
| void TransportSelector::enableFlowTimer | ( | const resip::Tuple & | flow | ) |
Definition at line 1468 of file TransportSelector.cxx.
Definition at line 1500 of file TransportSelector.cxx.
|
protected |
Definition at line 1576 of file TransportSelector.cxx.
|
static |
Definition at line 664 of file TransportSelector.cxx.
| unsigned int TransportSelector::getTimeTillNextProcessMS | ( | ) |
Definition at line 1727 of file TransportSelector.cxx.
|
inline |
Definition at line 142 of file TransportSelector.hxx.
| bool TransportSelector::hasDataToSend | ( | ) | const |
| true | Some transport in the transport list has data to send |
| false | No transport in the transport list has data to send Should only be called from TransportSelector processing loop. |
Definition at line 575 of file TransportSelector.cxx.
| void TransportSelector::invokeAfterSocketCreationFunc | ( | TransportType | type | ) |
Definition at line 1483 of file TransportSelector.cxx.
| bool TransportSelector::isFinished | ( | ) | const |
Returns true if all Transports have their buffers cleared, false otherwise.
Definition at line 177 of file TransportSelector.cxx.
| void TransportSelector::poke | ( | ) |
Causes transport process loops to be interrupted if there is stuff in their transmit fifos.
Definition at line 554 of file TransportSelector.cxx.
| void TransportSelector::process | ( | ) |
Definition at line 501 of file TransportSelector.cxx.
| void TransportSelector::process | ( | FdSet & | fdset | ) |
Calls process on all suitable transports NOTE that TransportSelector no longer handles DNSInterface NOTE not used with pollGrp.
Definition at line 478 of file TransportSelector.cxx.
| void TransportSelector::registerMarkListener | ( | MarkListener * | listener | ) |
Definition at line 1733 of file TransportSelector.cxx.
| void TransportSelector::removeTransport | ( | unsigned int | transportKey | ) |
Definition at line 320 of file TransportSelector.cxx.
| void TransportSelector::retransmit | ( | const SendData & | msg | ) |
Resend to the same transport as last time.
Definition at line 1395 of file TransportSelector.cxx.
|
inline |
Definition at line 147 of file TransportSelector.hxx.
| void resip::TransportSelector::setEnumSuffixes | ( | const std::vector< Data > & | suffixes | ) |
| void TransportSelector::setPollGrp | ( | FdPollGrp * | pollGrp | ) |
Configure a PollGrp to use (instead of buildFdSet/process) Must be called before adding any transports.
Definition at line 429 of file TransportSelector.cxx.
|
inline |
Definition at line 137 of file TransportSelector.hxx.
| void TransportSelector::shutdown | ( | ) |
Shuts down all transports.
Definition at line 168 of file TransportSelector.cxx.
|
inline |
Definition at line 127 of file TransportSelector.hxx.
| unsigned int TransportSelector::sumTransportFifoSizes | ( | ) | const |
Definition at line 1451 of file TransportSelector.cxx.
| void TransportSelector::terminateFlow | ( | const resip::Tuple & | flow | ) |
Definition at line 1462 of file TransportSelector.cxx.
| TransportSelector::TransmitState TransportSelector::transmit | ( | SipMessage * | msg, |
| Tuple & | target, | ||
| SendData * | sendData = 0 |
||
| ) |
Definition at line 958 of file TransportSelector.cxx.
| void TransportSelector::unregisterMarkListener | ( | MarkListener * | listener | ) |
Definition at line 1738 of file TransportSelector.cxx.
|
friend |
Definition at line 245 of file TransportSelector.hxx.
|
friend |
Definition at line 244 of file TransportSelector.hxx.