libcamgm
Public Member Functions | Protected Attributes | Private Attributes | List of all members
ca_mgm::ExternalDataSource Class Reference

Bidirectional stream to external data. More...

#include <ExternalDataSource.hpp>

Inheritance diagram for ca_mgm::ExternalDataSource:
ca_mgm::ExternalProgram

Public Member Functions

 ExternalDataSource (FILE *inputfile=0, FILE *outputfile=0)
 
virtual ~ExternalDataSource ()
 
bool send (const char *buffer, size_t length)
 
bool send (std::string s)
 
size_t receive (char *buffer, size_t length)
 
std::string receiveLine ()
 
std::string receiveUpto (char c)
 
void setBlocking (bool mode)
 
virtual int close ()
 
FILE * inputFile () const
 
FILE * outputFile () const
 

Protected Attributes

FILE * inputfile
 
FILE * outputfile
 

Private Attributes

char * linebuffer
 
size_t linebuffer_size
 

Detailed Description

Bidirectional stream to external data.

Constructor & Destructor Documentation

ca_mgm::ExternalDataSource::ExternalDataSource ( FILE *  inputfile = 0,
FILE *  outputfile = 0 
)

Create a new instance.

Parameters
inputfileThe stream for reading
outputfileThe stream for writing Either can be NULL if no reading/writing is allowed.
virtual ca_mgm::ExternalDataSource::~ExternalDataSource ( )
virtual

Implicitly close the connection.

Member Function Documentation

virtual int ca_mgm::ExternalDataSource::close ( )
virtual

Close the input and output streams.

Reimplemented in ca_mgm::ExternalProgram.

FILE* ca_mgm::ExternalDataSource::inputFile ( ) const
inline

Return the input stream.

References inputfile.

FILE* ca_mgm::ExternalDataSource::outputFile ( ) const
inline

Return the output stream.

References outputfile.

size_t ca_mgm::ExternalDataSource::receive ( char *  buffer,
size_t  length 
)

Read some data from the input stream.

Parameters
bufferWhere to put the data
lengthHow much to read at most Returns the amount actually received
std::string ca_mgm::ExternalDataSource::receiveLine ( )

Read one line from the input stream. Returns the line read, including the terminator.

std::string ca_mgm::ExternalDataSource::receiveUpto ( char  c)

Read characters into a string until character c is read. C is put at the end of the string.

bool ca_mgm::ExternalDataSource::send ( const char *  buffer,
size_t  length 
)

Send some data to the output stream.

Parameters
bufferThe data to send
lengthThe size of it
bool ca_mgm::ExternalDataSource::send ( std::string  s)

Send some data down the stream.

Parameters
stringThe data to send
void ca_mgm::ExternalDataSource::setBlocking ( bool  mode)

Set the blocking mode of the input stream.

Parameters
modeTrue if the reader should be blocked waiting for input. This is the initial default.

Member Data Documentation

FILE* ca_mgm::ExternalDataSource::inputfile
protected

Referenced by inputFile().

char* ca_mgm::ExternalDataSource::linebuffer
private
size_t ca_mgm::ExternalDataSource::linebuffer_size
private
FILE* ca_mgm::ExternalDataSource::outputfile
protected

Referenced by outputFile().


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