zypp::externalprogram::ExternalDataSource Class Reference

Bidirectional stream to external data. More...

#include <ExternalDataSource.h>

Inheritance diagram for zypp::externalprogram::ExternalDataSource:

zypp::ExternalProgram List of all members.

Public Member Functions

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

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:
inputfile The stream for reading
outputfile The stream for writing Either can be NULL if no reading/writing is allowed.

Definition at line 34 of file ExternalDataSource.cc.

zypp::externalprogram::ExternalDataSource::~ExternalDataSource  )  [virtual]
 

Implicitly close the connection.

Definition at line 43 of file ExternalDataSource.cc.

References close(), and linebuffer.


Member Function Documentation

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

Send some data to the output stream.

Parameters:
buffer The data to send
length The size of it

Definition at line 52 of file ExternalDataSource.cc.

References outputfile.

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

Send some data down the stream.

Parameters:
string The data to send

size_t zypp::externalprogram::ExternalDataSource::receive char *  buffer,
size_t  length
 

Read some data from the input stream.

Parameters:
buffer Where to put the data
length How much to read at most Returns the amount actually received

Definition at line 107 of file ExternalDataSource.cc.

References inputfile.

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

Read one line from the input stream.

Returns the line read, including the terminator.

Definition at line 141 of file ExternalDataSource.cc.

References zypp::iostr::getline(), inputfile, linebuffer, and linebuffer_size.

Referenced by zypp::target::rpm::diffFiles(), zypp::debug::dumpMemOn(), zypp::KeyRing::Impl::dumpPublicKey(), zypp::KeyRing::Impl::publicKeys(), zypp::KeyRing::Impl::readPublicKey(), and zypp::KeyRing::Impl::readSignatureKeyId().

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 73 of file ExternalDataSource.cc.

References inputfile.

void zypp::externalprogram::ExternalDataSource::setBlocking bool  mode  ) 
 

Set the blocking mode of the input stream.

Parameters:
mode True if the reader should be blocked waiting for input. This is the initial default.

Definition at line 115 of file ExternalDataSource.cc.

References ERR, inputfile, and zypp::str::strerror().

int zypp::externalprogram::ExternalDataSource::close  )  [virtual]
 

Close the input and output streams.

Reimplemented in zypp::ExternalProgram.

Definition at line 157 of file ExternalDataSource.cc.

References inputfile, and outputfile.

Referenced by ~ExternalDataSource().

FILE* zypp::externalprogram::ExternalDataSource::inputFile  )  const [inline]
 

Return the input stream.

Definition at line 99 of file ExternalDataSource.h.

References inputfile.

FILE* zypp::externalprogram::ExternalDataSource::outputFile  )  const [inline]
 

Return the output stream.

Definition at line 104 of file ExternalDataSource.h.

References outputfile.


Member Data Documentation

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

Definition at line 31 of file ExternalDataSource.h.

Referenced by close(), inputFile(), receive(), receiveLine(), receiveUpto(), and setBlocking().

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

Definition at line 32 of file ExternalDataSource.h.

Referenced by close(), outputFile(), and send().

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

Definition at line 35 of file ExternalDataSource.h.

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

size_t zypp::externalprogram::ExternalDataSource::linebuffer_size [private]
 

Definition at line 36 of file ExternalDataSource.h.

Referenced by receiveLine().


The documentation for this class was generated from the following files:
Generated on Thu Jul 6 00:07:32 2006 for zypp by  doxygen 1.4.6