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

Collection of Connection per Transport. More...

#include <ConnectionManager.hxx>

Public Member Functions

 ConnectionManager ()
 
 ~ConnectionManager ()
 
Connection * findConnection (const Tuple &tuple)
 may return 0
 
const Connection * findConnection (const Tuple &tuple) const
 
void setPollGrp (FdPollGrp *grp)
 populate the fdset againt the read and write lists
 
void buildFdSet (FdSet &fdset)
 
void process (FdSet &fdset)
 
virtual void invokeAfterSocketCreationFunc () const
 

Static Public Attributes

static uint64_t MinimumGcAge = 1
 connection must have no inbound traffic for greater than this time (in ms) before it is garbage collected
 
static uint64_t MinimumGcHeadroom = 0
 If the difference between the number of permitted FDs (reported by periodic calls to getrlimit()) and the number of active stream connections falls below this threshold, the garbage collector will overlook MinimumGcAge and more aggressively close connections.
 
static bool EnableAgressiveGc = false
 Enable Agressive Connection Garbage Collection to have resip perform garbage collection on every new connection.
 

Friends

class Connection
 
class TcpBaseTransport
 

Detailed Description

Collection of Connection per Transport.

Maintains round-robin orders for read and write. Maintains least-recently-used connections list for garbage collection.

Maintains mapping from Tuple to Connection.

Definition at line 19 of file ConnectionManager.hxx.

Constructor & Destructor Documentation

◆ ConnectionManager()

ConnectionManager::ConnectionManager ( )

Definition at line 26 of file ConnectionManager.cxx.

◆ ~ConnectionManager()

ConnectionManager::~ConnectionManager ( )

Definition at line 37 of file ConnectionManager.cxx.

Member Function Documentation

◆ buildFdSet()

void ConnectionManager::buildFdSet ( FdSet &  fdset)

Definition at line 135 of file ConnectionManager.cxx.

◆ findConnection() [1/2]

Connection * ConnectionManager::findConnection ( const Tuple &  tuple)

may return 0

Definition at line 56 of file ConnectionManager.cxx.

◆ findConnection() [2/2]

const Connection * ConnectionManager::findConnection ( const Tuple &  tuple) const

Definition at line 98 of file ConnectionManager.cxx.

◆ invokeAfterSocketCreationFunc()

void ConnectionManager::invokeAfterSocketCreationFunc ( ) const
virtual

Definition at line 471 of file ConnectionManager.cxx.

◆ process()

void ConnectionManager::process ( FdSet &  fdset)

Definition at line 396 of file ConnectionManager.cxx.

◆ setPollGrp()

void ConnectionManager::setPollGrp ( FdPollGrp *  grp)

populate the fdset againt the read and write lists

Definition at line 461 of file ConnectionManager.cxx.

Friends And Related Symbol Documentation

◆ Connection

friend class Connection
friend

Definition at line 21 of file ConnectionManager.hxx.

◆ TcpBaseTransport

friend class TcpBaseTransport
friend

Definition at line 91 of file ConnectionManager.hxx.

Member Data Documentation

◆ EnableAgressiveGc

bool ConnectionManager::EnableAgressiveGc = false
static

Enable Agressive Connection Garbage Collection to have resip perform garbage collection on every new connection.

If disabled then garbage collection is only performed if we run out of Fd's

Definition at line 36 of file ConnectionManager.hxx.

◆ MinimumGcAge

uint64_t ConnectionManager::MinimumGcAge = 1
static

connection must have no inbound traffic for greater than this time (in ms) before it is garbage collected

Definition at line 26 of file ConnectionManager.hxx.

◆ MinimumGcHeadroom

uint64_t ConnectionManager::MinimumGcHeadroom = 0
static

If the difference between the number of permitted FDs (reported by periodic calls to getrlimit()) and the number of active stream connections falls below this threshold, the garbage collector will overlook MinimumGcAge and more aggressively close connections.

Definition at line 32 of file ConnectionManager.hxx.


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