reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
resip::TransportSelector Class Reference

#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
 

Detailed Description

Definition at line 59 of file TransportSelector.hxx.

Member Enumeration Documentation

◆ TransmitState

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.

Constructor & Destructor Documentation

◆ TransportSelector()

TransportSelector::TransportSelector ( Fifo< TransactionMessage > &  fifo,
Security *  security,
DnsStub &  dnsStub,
Compression &  compression,
bool  useDnsVip 
)

Definition at line 92 of file TransportSelector.cxx.

◆ ~TransportSelector()

TransportSelector::~TransportSelector ( )
virtual

Definition at line 126 of file TransportSelector.cxx.

Member Function Documentation

◆ addTransport()

void TransportSelector::addTransport ( std::unique_ptr< Transport >  transport,
bool  isStackRunning 
)

Add/Remove a transport.

Definition at line 190 of file TransportSelector.cxx.

◆ buildFdSet()

void TransportSelector::buildFdSet ( FdSet &  fdset)

Builds an FdSet comprised of all FDs from all suitable Transports.

Definition at line 465 of file TransportSelector.cxx.

◆ closeConnection()

void TransportSelector::closeConnection ( const Tuple &  peer)

Definition at line 1436 of file TransportSelector.cxx.

◆ createDnsResult()

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.

◆ createSelectInterruptor()

void TransportSelector::createSelectInterruptor ( )

Called when the TransportSelector will be running in a different.

Definition at line 452 of file TransportSelector.cxx.

◆ dnsResolve()

void TransportSelector::dnsResolve ( DnsResult *  result,
SipMessage *  msg 
)

Definition at line 598 of file TransportSelector.cxx.

◆ enableFlowTimer()

void TransportSelector::enableFlowTimer ( const resip::Tuple &  flow)

Definition at line 1468 of file TransportSelector.cxx.

◆ findTransportByDest()

Transport * TransportSelector::findTransportByDest ( const Tuple &  dest)
protected

Definition at line 1500 of file TransportSelector.cxx.

◆ findTransportBySource()

Transport * TransportSelector::findTransportBySource ( Tuple &  src,
const SipMessage *  msg 
) const
protected

Definition at line 1576 of file TransportSelector.cxx.

◆ getFirstInterface()

Tuple TransportSelector::getFirstInterface ( bool  is_v4,
TransportType  type 
)
static

Definition at line 664 of file TransportSelector.cxx.

◆ getTimeTillNextProcessMS()

unsigned int TransportSelector::getTimeTillNextProcessMS ( )

Definition at line 1727 of file TransportSelector.cxx.

◆ getUdpOnlyOnNumeric()

bool resip::TransportSelector::getUdpOnlyOnNumeric ( ) const
inline

Definition at line 142 of file TransportSelector.hxx.

◆ hasDataToSend()

bool TransportSelector::hasDataToSend ( ) const
Return values
trueSome transport in the transport list has data to send
falseNo 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.

◆ invokeAfterSocketCreationFunc()

void TransportSelector::invokeAfterSocketCreationFunc ( TransportType  type)

Definition at line 1483 of file TransportSelector.cxx.

◆ isFinished()

bool TransportSelector::isFinished ( ) const

Returns true if all Transports have their buffers cleared, false otherwise.

Definition at line 177 of file TransportSelector.cxx.

◆ poke()

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.

◆ process() [1/2]

void TransportSelector::process ( )

Definition at line 501 of file TransportSelector.cxx.

◆ process() [2/2]

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.

◆ registerMarkListener()

void TransportSelector::registerMarkListener ( MarkListener *  listener)

Definition at line 1733 of file TransportSelector.cxx.

◆ removeTransport()

void TransportSelector::removeTransport ( unsigned int  transportKey)

Definition at line 320 of file TransportSelector.cxx.

◆ retransmit()

void TransportSelector::retransmit ( const SendData &  msg)

Resend to the same transport as last time.

Definition at line 1395 of file TransportSelector.cxx.

◆ setCongestionManager()

void resip::TransportSelector::setCongestionManager ( CongestionManager *  manager)
inline

Definition at line 147 of file TransportSelector.hxx.

◆ setEnumSuffixes()

void resip::TransportSelector::setEnumSuffixes ( const std::vector< Data > &  suffixes)

◆ setPollGrp()

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.

◆ setUdpOnlyOnNumeric()

bool resip::TransportSelector::setUdpOnlyOnNumeric ( bool  value)
inline

Definition at line 137 of file TransportSelector.hxx.

◆ shutdown()

void TransportSelector::shutdown ( )

Shuts down all transports.

Definition at line 168 of file TransportSelector.cxx.

◆ stateMacFifo()

Fifo< TransactionMessage > & resip::TransportSelector::stateMacFifo ( )
inline

Definition at line 127 of file TransportSelector.hxx.

◆ sumTransportFifoSizes()

unsigned int TransportSelector::sumTransportFifoSizes ( ) const

Definition at line 1451 of file TransportSelector.cxx.

◆ terminateFlow()

void TransportSelector::terminateFlow ( const resip::Tuple &  flow)

Definition at line 1462 of file TransportSelector.cxx.

◆ transmit()

TransportSelector::TransmitState TransportSelector::transmit ( SipMessage *  msg,
Tuple &  target,
SendData *  sendData = 0 
)

Definition at line 958 of file TransportSelector.cxx.

◆ unregisterMarkListener()

void TransportSelector::unregisterMarkListener ( MarkListener *  listener)

Definition at line 1738 of file TransportSelector.cxx.

Friends And Related Symbol Documentation

◆ SipStack

friend class SipStack
friend

Definition at line 245 of file TransportSelector.hxx.

◆ TestTransportSelector

friend class TestTransportSelector
friend

Definition at line 244 of file TransportSelector.hxx.


The documentation for this class was generated from the following files: