yast2-core
Public Member Functions | Protected Attributes | Private Attributes | List of all members
ExternalDataSource Class Reference

Bidirectional stream to external data. More...

#include <ExternalDataSource.h>

Inheritance diagram for ExternalDataSource:
ExternalProgram Process

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

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.
ExternalDataSource::~ExternalDataSource ( )
virtual

Implicitly close the connection.

References close(), and linebuffer.

Member Function Documentation

int ExternalDataSource::close ( )
virtual

Close the input and output streams.

Reimplemented in ExternalProgram.

References inputfile, and outputfile.

Referenced by ExternalProgram::close(), and ~ExternalDataSource().

FILE* ExternalDataSource::inputFile ( ) const
inline

Return the input stream.

References inputfile.

FILE* ExternalDataSource::outputFile ( ) const
inline

Return the output stream.

References outputfile.

Referenced by main().

size_t 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

References inputfile.

Referenced by Process::readStdoutToBuffer().

string ExternalDataSource::receiveLine ( )

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

References stringutil::getline(), inputfile, linebuffer, and linebuffer_size.

Referenced by PathInfo::clean_dir(), PathInfo::copy(), PathInfo::copy_dir(), PathInfo::copy_file2dir(), and PathInfo::recursive_rmdir().

string ExternalDataSource::receiveUpto ( char  c)

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

References inputfile.

Referenced by Process::BufferNewStdoutLines().

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

Send some data to the output stream.

Parameters
bufferThe data to send
lengthThe size of it

References outputfile.

Referenced by main(), and send().

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

Send some data down the stream.

Parameters
stringThe data to send

References DBG, and send().

void 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.

References ERR, and inputfile.

Referenced by main().

Member Data Documentation

FILE* ExternalDataSource::inputfile
protected
char* ExternalDataSource::linebuffer
private

Referenced by receiveLine(), and ~ExternalDataSource().

size_t ExternalDataSource::linebuffer_size
private

Referenced by receiveLine().

FILE* ExternalDataSource::outputfile
protected

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

Generated on a sunny day for yast2-core by doxygen 1.8.8