Passenger::StandardSession Class Reference

A "standard" implementation of Session. More...

#include <Session.h>

Inheritance diagram for Passenger::StandardSession:

Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual void initiate ()
 Initiate the session by connecting to the associated process.
virtual bool initiated () const
 Returns whether this session has been initiated (that is, whether initiate() had been called in the past).
virtual string getSocketType () const
 Returns the type of the socket that this session is served from, e.g.
virtual string getSocketName () const
 Returns the address of the socket that this session is served from.
virtual int getStream () const
 Returns this session's channel's file descriptor.
virtual void setReaderTimeout (unsigned int msec)
 Set the timeout value for reading data from the I/O channel.
virtual void setWriterTimeout (unsigned int msec)
 Set the timeout value for writing data from the I/O channel.
virtual void shutdownReader ()
 Indicate that we don't want to read data anymore from the I/O channel.
virtual void shutdownWriter ()
 Indicate that we don't want to write data anymore to the I/O channel.
virtual void closeStream ()
 Close the I/O stream.
virtual void discardStream ()
 Discard the I/O channel's file descriptor, so that the destructor won't automatically close it.
virtual pid_t getPid () const
 Get the process ID of the application process that this session belongs to.

Protected Attributes

int fd
 The session connection file descriptor.


Detailed Description

A "standard" implementation of Session.

Member Function Documentation

virtual void Passenger::StandardSession::closeStream (  )  [inline, virtual]

Close the I/O stream.

Exceptions:
SystemException Something went wrong.
boost::thread_interrupted 
Precondition:
initiated()
Postcondition:
getStream() == -1

Implements Passenger::Session.

virtual void Passenger::StandardSession::discardStream (  )  [inline, virtual]

Discard the I/O channel's file descriptor, so that the destructor won't automatically close it.

Precondition:
initiated()
Postcondition:
getStream() == -1

Implements Passenger::Session.

virtual string Passenger::StandardSession::getSocketName (  )  const [inline, virtual]

Returns the address of the socket that this session is served from.

This can be a Unix socket filename or a TCP host:port string like "127.0.0.1:1234".

Postcondition:
!result.empty()

Implements Passenger::Session.

virtual string Passenger::StandardSession::getSocketType (  )  const [inline, virtual]

Returns the type of the socket that this session is served from, e.g.

"unix" indicating a Unix socket.

Postcondition:
!result.empty()

Implements Passenger::Session.

virtual int Passenger::StandardSession::getStream (  )  const [inline, virtual]

Returns this session's channel's file descriptor.

This stream is full-duplex, and will be automatically closed upon Session's destruction, unless discardStream() is called.

Precondition:
initiated()
Returns:
The file descriptor, or -1 if the I/O channel has already been closed or discarded.

Implements Passenger::Session.

virtual void Passenger::StandardSession::initiate (  )  [inline, virtual]

Initiate the session by connecting to the associated process.

A Session is not usable until it's initiated.

Exceptions:
SystemException Something went wrong.
IOException Something went wrong.
boost::thread_interrupted 

Implements Passenger::Session.

virtual void Passenger::StandardSession::setReaderTimeout ( unsigned int  msec  )  [inline, virtual]

Set the timeout value for reading data from the I/O channel.

If no data can be read within the timeout period, then the read call will fail with error EAGAIN or EWOULDBLOCK.

Precondition:
The I/O channel hasn't been closed or discarded.

initiated()

Parameters:
msec The timeout, in milliseconds. If 0 is given, there will be no timeout.
Exceptions:
SystemException Cannot set the timeout.

Implements Passenger::Session.

virtual void Passenger::StandardSession::setWriterTimeout ( unsigned int  msec  )  [inline, virtual]

Set the timeout value for writing data from the I/O channel.

If no data can be written within the timeout period, then the write call will fail with error EAGAIN or EWOULDBLOCK.

Precondition:
The I/O channel hasn't been closed or discarded.

initiated()

Parameters:
msec The timeout, in milliseconds. If 0 is given, there will be no timeout.
Exceptions:
SystemException Cannot set the timeout.

Implements Passenger::Session.

virtual void Passenger::StandardSession::shutdownReader (  )  [inline, virtual]

Indicate that we don't want to read data anymore from the I/O channel.

Calling this method after closeStream()/discardStream() is called will have no effect.

Precondition:
initiated()
Exceptions:
SystemException Something went wrong.
boost::thread_interrupted 

Implements Passenger::Session.

virtual void Passenger::StandardSession::shutdownWriter (  )  [inline, virtual]

Indicate that we don't want to write data anymore to the I/O channel.

Calling this method after closeStream()/discardStream() is called will have no effect.

Precondition:
initiated()
Exceptions:
SystemException Something went wrong.
boost::thread_interrupted 

Implements Passenger::Session.


Member Data Documentation

The session connection file descriptor.


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

Generated on Sun Mar 28 14:11:59 2010 for Passenger by  doxygen 1.5.8