Ogg::Transport Class Reference
[Transport InterfaceDerivable and Nonderivable Classes]

Transport interface. More...

#include <Transport.H>

List of all members.

Public Member Functions

void * impl ()
 Transport (bool encapsulating)
 An argument of false means decapsulating.
virtual ~Transport ()
 Disallows deletion. Throws NoDeletion exception.
long serialNo (long)
 Get the next unclaimed serial no.
Logicallogical (long serialNo)
 Returns the Logical with serialNo.
void loop ()
 Encapsulation/decapsulation loop in Transport thread.
void terminate ()
 Called by thread other than Transport or in call backs.
virtual void sendCallback (Page &)
 Send call back.
virtual size_t recvCallback (Page &)
 Receive call back.
virtual bool laterThan (const Page &p1, const Page &p2)
 Transport page ordering function.

Static Public Attributes

static const unsigned char CurrentVersion = 0x00

Protected Member Functions

 Transport (int dummy)
 Despite appearance, derived classes should NOT call this.

Classes

class  NoDeletion
 Exception thrown by Transport::~Transport(). More...
class  PrematureEndOfOggStream
 Exception thrown by a reading Transport::loop. More...


Detailed Description

Transport interface.

Derive from this class and override Transport::sendCallback and Transport::recvCallback to provide the actual transport logic.


Constructor & Destructor Documentation

Ogg::Transport::Transport ( int  dummy  )  [inline, protected]

Despite appearance, derived classes should NOT call this.

Ogg::Transport::Transport ( bool  encapsulating  ) 

An argument of false means decapsulating.

virtual Ogg::Transport::~Transport (  )  [virtual]

Disallows deletion. Throws NoDeletion exception.


Member Function Documentation

void* Ogg::Transport::impl (  )  [inline]

long Ogg::Transport::serialNo ( long   ) 

Get the next unclaimed serial no.

For encapsulation, returns a valid unused serial number greater or equal to its argument. For decapsulation, returns the serial number of a detected logical stream greater than its argument

Logical* Ogg::Transport::logical ( long  serialNo  ) 

Returns the Logical with serialNo.

void Ogg::Transport::loop (  ) 

Encapsulation/decapsulation loop in Transport thread.

On encapsulation, accepts initiations of Logical streams for sending. Enforces page ordering according to Ogg::operator<(Page, Page).

On decapsulation, makes ready first header packet for each logical stream. To be safe, instantiate the reading Logical instances before you loop.

Call this within a try block to catch exceptions. To force exit from the loop, call terminate from another thread or from within the call back methods.

void Ogg::Transport::terminate (  ) 

Called by thread other than Transport or in call backs.

Sends command to Transport to exit loop at end of an Ogg stream.


Member Data Documentation

const unsigned char Ogg::Transport::CurrentVersion = 0x00 [static]


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

Generated on Thu Feb 26 12:25:46 2009 for libogg++ by  doxygen 1.5.6