Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

RTSPProxySessionFactory Class Reference

#include <RTSPProxySessionFactory.h>

Collaboration diagram for RTSPProxySessionFactory:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 RTSPProxySessionFactory ()
 ~RTSPProxySessionFactory ()
ProxySessionPtr newSession (MNSelector &slct, int fd, MNString url, bool doDynReflection)
ProxySessionPtr newSession (MNSelector &slct, int fd)
ProxySessionPtr getSession (int num)
ProxySessionPtr findSessionWithSessionID (ControlBase *fb, u_int64_t SessionId)
ProxySessionPtr findSessionWithCSeq (ControlBase *fb, int CSeq)
ProxySessionPtr assignSessionId (ControlBase *fb, int cseq, u_int64_t id)
void assignDownstreamSessionId (int sessionNo)
bool forgetSession (u_int64_t sessionId)
bool forgetSession (ProxySessionPtr Session)
bool forgetSessionTeardown (ProxySessionPtr Session)
bool forgetSession (RTSPProxySession *Session)
void forgetSessionsBySocket (int fd)

Detailed Description

The class is responsible for the creation and storage of proxy sessions. The class assigns session ids to sessions, to be used in RTSP's session identifier. It works basically like the MNRTSPSessionFactory.
See also:
MNRTSPSessionFactory


Constructor & Destructor Documentation

RTSPProxySessionFactory::RTSPProxySessionFactory  ) 
 

RTSPProxySessionFactory::~RTSPProxySessionFactory  ) 
 


Member Function Documentation

void RTSPProxySessionFactory::assignDownstreamSessionId int  sessionNo  ) 
 

ProxySessionPtr RTSPProxySessionFactory::assignSessionId ControlBase fb,
int  cseq,
u_int64_t  id
 

The function does TWO things: 1) it assigns the SessionID "id" to the ProxyClient, which received this Setup_Ok. ( found with cseq and fb ) 2) it assigns an arbitrary but unique SessionID to the ProxyServer (different from the upstream-SessionID)

ProxySessionPtr RTSPProxySessionFactory::findSessionWithCSeq ControlBase fb,
int  CSeq
 

This method must be used when we are working with multiple state machines in the ProxySession-objects. Because there won't be same CSeq's for incoming and outgoing RTSP-messages!!!

ProxySessionPtr RTSPProxySessionFactory::findSessionWithSessionID ControlBase fb,
u_int64_t  SessionId
 

bool RTSPProxySessionFactory::forgetSession RTSPProxySession Session  ) 
 

bool RTSPProxySessionFactory::forgetSession ProxySessionPtr  Session  ) 
 

bool RTSPProxySessionFactory::forgetSession u_int64_t  sessionId  ) 
 

Remove a session from the list that performs a correct teardown and that has provided a valid session id.

void RTSPProxySessionFactory::forgetSessionsBySocket int  fd  ) 
 

Delete all sessions that were multiplexed onto an RTSP socket that was closed. A teardown should be sent upstream for sessions that are closed in this way.

bool RTSPProxySessionFactory::forgetSessionTeardown ProxySessionPtr  Session  ) 
 

ProxySessionPtr RTSPProxySessionFactory::getSession int  num  ) 
 

ProxySessionPtr RTSPProxySessionFactory::newSession MNSelector slct,
int  fd
 

ProxySessionPtr RTSPProxySessionFactory::newSession MNSelector slct,
int  fd,
MNString  url,
bool  doDynReflection
 

Create a new proxy session. No detailed information about the request itself is stored in the session or in the table but the RTSP socket, which makes it possible to remove session if a socket closes without a teardown.


The documentation for this class was generated from the following file:
Generated on Sun Mar 6 13:36:13 2005 for Komssys by doxygen 1.3.8