Sirikata
Public Types | Public Member Functions | Private Member Functions | Private Attributes
Sirikata::RecordSSTStream< StreamPtrType > Class Template Reference

RecordSSTStream wraps a regular SST stream, turning it into a record-based stream, i.e. More...

#include <RecordSSTStream.hpp>

Inheritance diagram for Sirikata::RecordSSTStream< StreamPtrType >:
Collaboration diagram for Sirikata::RecordSSTStream< StreamPtrType >:

List of all members.

Public Types

typedef std::tr1::function
< void(MemoryReference)> 
RecordCallback

Public Member Functions

 RecordSSTStream ()
 ~RecordSSTStream ()
void initialize (StreamPtrType stream, RecordCallback cb)
void write (const MemoryReference &data)
void destroy ()

Private Member Functions

 RecordSSTStream (const RecordSSTStream &)
void handleRead (uint8 *data, int size)
void writeSomeData (Liveness::Token alive)

Private Attributes

StreamPtrType mStream
RecordCallback mCB
std::queue< std::string > outstanding
bool writing
String partial_frame

Detailed Description

template<typename StreamPtrType>
class Sirikata::RecordSSTStream< StreamPtrType >

RecordSSTStream wraps a regular SST stream, turning it into a record-based stream, i.e.

performing buffering and triggering callbacks for each record rather than for each set of received bytes. This is useful for reliable, message-oriented protocols. The user submits individual records to be sent and it uses simple framing to identify the records at the receiver.


Member Typedef Documentation

template<typename StreamPtrType>
typedef std::tr1::function<void(MemoryReference)> Sirikata::RecordSSTStream< StreamPtrType >::RecordCallback

Constructor & Destructor Documentation

template<typename StreamPtrType>
Sirikata::RecordSSTStream< StreamPtrType >::RecordSSTStream ( ) [inline]
template<typename StreamPtrType>
Sirikata::RecordSSTStream< StreamPtrType >::~RecordSSTStream ( ) [inline]
template<typename StreamPtrType>
Sirikata::RecordSSTStream< StreamPtrType >::RecordSSTStream ( const RecordSSTStream< StreamPtrType > &  ) [private]

Member Function Documentation

template<typename StreamPtrType>
void Sirikata::RecordSSTStream< StreamPtrType >::destroy ( ) [inline]
template<typename StreamPtrType>
void Sirikata::RecordSSTStream< StreamPtrType >::handleRead ( uint8 *  data,
int  size 
) [inline, private]
template<typename StreamPtrType>
void Sirikata::RecordSSTStream< StreamPtrType >::initialize ( StreamPtrType  stream,
RecordCallback  cb 
) [inline]
template<typename StreamPtrType>
void Sirikata::RecordSSTStream< StreamPtrType >::write ( const MemoryReference data) [inline]
template<typename StreamPtrType>
void Sirikata::RecordSSTStream< StreamPtrType >::writeSomeData ( Liveness::Token  alive) [inline, private]

Member Data Documentation

template<typename StreamPtrType>
RecordCallback Sirikata::RecordSSTStream< StreamPtrType >::mCB [private]
template<typename StreamPtrType>
StreamPtrType Sirikata::RecordSSTStream< StreamPtrType >::mStream [private]
template<typename StreamPtrType>
std::queue<std::string> Sirikata::RecordSSTStream< StreamPtrType >::outstanding [private]
template<typename StreamPtrType>
String Sirikata::RecordSSTStream< StreamPtrType >::partial_frame [private]
template<typename StreamPtrType>
bool Sirikata::RecordSSTStream< StreamPtrType >::writing [private]

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