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