libzypp 17.31.23
zypp::externalprogram::ExternalDataSource Class Reference

Bidirectional stream to external data. More...

#include <base/ExternalDataSource.h>

Inheritance diagram for zypp::externalprogram::ExternalDataSource:

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 receiveLine (io::timeout_type timeout)
 Read one line from the input stream.
 
std::string receiveUpto (char c)
 Read characters into a string until delimiter c or EOF is read.
 
std::string receiveUpto (char c, io::timeout_type timeout)
 Read characters into a string until delimiter c or EOF is read or the timeout is reached.
 
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 27 of file ExternalDataSource.h.

Constructor & Destructor Documentation

◆ ExternalDataSource()

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

◆ ~ExternalDataSource()

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

Implicitly close the connection.

Definition at line 43 of file ExternalDataSource.cc.

Member Function Documentation

◆ send() [1/2]

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

◆ send() [2/2]

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

Send some data down the stream.

Parameters
stringThe data to send

Definition at line 65 of file ExternalDataSource.cc.

◆ receive()

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

◆ receiveLine() [1/2]

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

Read one line from the input stream.

Returns the line read, including the terminator.

Definition at line 115 of file ExternalDataSource.cc.

◆ receiveLine() [2/2]

std::string zypp::externalprogram::ExternalDataSource::receiveLine ( io::timeout_type  timeout)

Read one line from the input stream.

Returns the line read, including the terminator.

Note
The delimiter is not removed from the string.
The timeout value is to be specified in milliseconds.
Exceptions
io::TimeoutExceptionif the timeout is reached

Definition at line 129 of file ExternalDataSource.cc.

◆ receiveUpto() [1/2]

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

Read characters into a string until delimiter c or EOF is read.

Note
The delimiter is not removed from the string.

Definition at line 73 of file ExternalDataSource.cc.

◆ receiveUpto() [2/2]

std::string zypp::externalprogram::ExternalDataSource::receiveUpto ( char  c,
io::timeout_type  timeout 
)

Read characters into a string until delimiter c or EOF is read or the timeout is reached.

Note
The delimiter is not removed from the string.
The timeout value is to be specified in milliseconds.
Exceptions
io::TimeoutExceptionif the timeout is reached

Definition at line 90 of file ExternalDataSource.cc.

◆ setBlocking()

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

◆ close()

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

Close the input and output streams.

Reimplemented in zypp::ExternalProgram.

Definition at line 135 of file ExternalDataSource.cc.

◆ inputFile()

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

Return the input stream.

Definition at line 118 of file ExternalDataSource.h.

◆ outputFile()

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

Return the output stream.

Definition at line 123 of file ExternalDataSource.h.

Member Data Documentation

◆ inputfile

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

Definition at line 30 of file ExternalDataSource.h.

◆ outputfile

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

Definition at line 31 of file ExternalDataSource.h.

◆ linebuffer

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

Definition at line 34 of file ExternalDataSource.h.

◆ linebuffer_size

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

Definition at line 35 of file ExternalDataSource.h.


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