libzypp  13.10.6
zypp::externalprogram::ExternalDataSource Class Reference

Bidirectional stream to external data. More...

#include <ExternalDataSource.h>

Inheritance diagram for zypp::externalprogram::ExternalDataSource:
zypp::ExternalProgram zypp::ExternalProgramWithStderr

Public Member Functions

 ExternalDataSource (FILE *inputfile=0, FILE *outputfile=0)
 Create a new instance. More...
 
virtual ~ExternalDataSource ()
 Implicitly close the connection. More...
 
bool send (const char *buffer, size_t length)
 Send some data to the output stream. More...
 
bool send (std::string s)
 Send some data down the stream. More...
 
size_t receive (char *buffer, size_t length)
 Read some data from the input stream. More...
 
std::string receiveLine ()
 Read one line from the input stream. More...
 
std::string receiveUpto (char c)
 Read characters into a string until character c is read. More...
 
void setBlocking (bool mode)
 Set the blocking mode of the input stream. More...
 
virtual int close ()
 Close the input and output streams. More...
 
FILE * inputFile () const
 Return the input stream. More...
 
FILE * outputFile () const
 Return the output stream. More...
 

Protected Attributes

FILE * inputfile
 
FILE * outputfile
 

Private Attributes

char * linebuffer
 
size_t linebuffer_size
 

Detailed Description

Bidirectional stream to external data.

Definition at line 28 of file ExternalDataSource.h.

Constructor & Destructor Documentation

zypp::externalprogram::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.

Definition at line 37 of file ExternalDataSource.cc.

zypp::externalprogram::ExternalDataSource::~ExternalDataSource ( )
virtual

Implicitly close the connection.

Definition at line 46 of file ExternalDataSource.cc.

Member Function Documentation

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

Send some data to the output stream.

Parameters
bufferThe data to send
lengthThe size of it

Definition at line 55 of file ExternalDataSource.cc.

bool zypp::externalprogram::ExternalDataSource::send ( std::string  s)

Send some data down the stream.

Parameters
stringThe data to send

Definition at line 68 of file ExternalDataSource.cc.

size_t zypp::externalprogram::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

Definition at line 95 of file ExternalDataSource.cc.

string zypp::externalprogram::ExternalDataSource::receiveLine ( )

Read one line from the input stream.

Returns the line read, including the terminator.

Definition at line 129 of file ExternalDataSource.cc.

string zypp::externalprogram::ExternalDataSource::receiveUpto ( char  c)

Read characters into a string until character c is read.

C is put at the end of the string.

Definition at line 76 of file ExternalDataSource.cc.

void zypp::externalprogram::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.

Definition at line 103 of file ExternalDataSource.cc.

int zypp::externalprogram::ExternalDataSource::close ( )
virtual

Close the input and output streams.

Reimplemented in zypp::ExternalProgram.

Definition at line 145 of file ExternalDataSource.cc.

FILE* zypp::externalprogram::ExternalDataSource::inputFile ( ) const
inline

Return the input stream.

Definition at line 99 of file ExternalDataSource.h.

FILE* zypp::externalprogram::ExternalDataSource::outputFile ( ) const
inline

Return the output stream.

Definition at line 104 of file ExternalDataSource.h.

Member Data Documentation

FILE* zypp::externalprogram::ExternalDataSource::inputfile
protected

Definition at line 31 of file ExternalDataSource.h.

FILE* zypp::externalprogram::ExternalDataSource::outputfile
protected

Definition at line 32 of file ExternalDataSource.h.

char* zypp::externalprogram::ExternalDataSource::linebuffer
private

Definition at line 35 of file ExternalDataSource.h.

size_t zypp::externalprogram::ExternalDataSource::linebuffer_size
private

Definition at line 36 of file ExternalDataSource.h.


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