A TokenWriter writes sequential tokens to a file, a string or stdout. More...

#include <cfl_tokenwriter.h>

Public Types

enum  Mode {
  File, XmlFile, Stdout, String,
  Stream, XmlStream
}
 Mode of operation: write to file, string or stdout. More...

Public Member Functions

 TokenWriter (Mode mode)
 Console or String TokenWriter constructor.
 TokenWriter (const std::string &rFilename, std::ios::openmode openmode=std::ios::out|std::ios::trunc)
 File TokenWriter constructor.
 TokenWriter (const std::string &rFilename, const std::string &doctype)
 Xml File TokenWriter constructor.
 TokenWriter (std::ostream &rStream, const std::string &doctype="")
 Stream TokenWriter constructor.
 ~TokenWriter (void)
 Destructor.
std::string FileName (void) const
 Get the filename.
void Flush (void)
 Flush any buffers.
bool FileMode (void) const
 Test for file mode (incl.
bool XmlMode (void) const
 Test for xml file mode.
bool StdoutMode (void) const
 Test for file mode.
std::string Str (void)
 Retrieve output as string (if in String mode)
std::ostream * Streamp (void)
 Access C++ stream.
int Columns (void) const
 Get number of columns in a line.
void Columns (int columns)
 Set number of columns in a line.
void Endl (void)
 Write endl separator.
void Endl (bool on)
 Turn endl separator on/off.
void Write (const Token &rToken)
 Write next token.
void WriteString (const std::string &rString)
 Write string.
void WriteText (const std::string &rText)
 Write text.
void WriteText (const std::string &rLabel, const std::string &rText)
 Write text section.
void WriteText (const Token &rBeginTag, const std::string &rText)
 Write text section.
void WriteCharacterData (const std::string &rCharData)
 Write character data.
void WriteVerbatim (const std::string &rString)
 Write string.
void WriteInteger (Idx index)
 Write non negative integer.
void WriteFloat (const double &val)
 Write float.
void WriteInteger16 (long int val)
 Write integer as hex.
void WriteOption (const std::string &rOpt)
 Write option (may not contain any "+")
void WriteBegin (const std::string &rLabel)
 Write begin label.
void WriteEnd (const std::string &rLabel)
 Write end label.
void WriteEmpty (const std::string &rLabel)
 Write empty section label.
void WriteComment (const std::string &rComment)
 Write comment in faudes format.
void WriteXmlComment (const std::string &rComment)
 Write comment in Xml format.
void WriteBinary (const char *pData, long int len)
 Write comment.
TokenWriteroperator<< (Token &rToken)
 Operator for writing tokens.
TokenWriteroperator<< (const std::string &rString)
 Operator for writing std::strings to a stream.
TokenWriteroperator<< (const Idx index)
 Operator for writing Idxs to a stream.

Private Member Functions

void DoFlush (void)
 Flush internal buffer.

Private Attributes

Mode mMode
 Output mode.
std::ostream * mpStream
 ostream object pointer
std::ofstream mFStream
 Actual stream object, file output.
std::ostringstream mSStream
 Actual stream object, string output.
std::ostream * pSStream
 Actual stream object, stream output.
Token mOutBuffer
 Outputbuffer.
bool mHasOutBuffer
std::string mFileName
 Filename.
int mColumns
 Number of columns.
int mColCount
 Column counter.
bool mEndl
 Endl seperator on/off.
std::string mDocType
 Xml doctype if in xml mode.

Detailed Description

A TokenWriter writes sequential tokens to a file, a string or stdout.

It is the counterpart of the TokenReader. Since wrtiting data comparatively straight foreward, there is no explicit support of sections etc. It is left to the calling function to organise the output.

Definition at line 42 of file cfl_tokenwriter.h.

Member Enumeration Documentation

Mode of operation: write to file, string or stdout.

Enumerator:
File 
XmlFile 
Stdout 
String 
Stream 
XmlStream 

Definition at line 49 of file cfl_tokenwriter.h.

Constructor & Destructor Documentation

faudes::TokenWriter::TokenWriter ( Mode  mode)

Console or String TokenWriter constructor.

Technical detail: Stdout mode uses the global console object ConsoleOut::G() declared in cfl_helper.h.

Exceptions
Exception

Definition at line 73 of file cfl_tokenwriter.cpp.

faudes::TokenWriter::TokenWriter ( const std::string &  rFilename,
std::ios::openmode  openmode = std::ios::out|std::ios::trunc 
)

File TokenWriter constructor.

Parameters
rFilenameFile to write
openmodestd::ios::openmode
Exceptions
Exception

Definition at line 29 of file cfl_tokenwriter.cpp.

faudes::TokenWriter::TokenWriter ( const std::string &  rFilename,
const std::string &  doctype 
)

Xml File TokenWriter constructor.

Parameters
rFilenameFile to write
doctypeString to indicate XML doctype.
Exceptions
Exception

Definition at line 47 of file cfl_tokenwriter.cpp.

faudes::TokenWriter::TokenWriter ( std::ostream &  rStream,
const std::string &  doctype = "" 
)

Stream TokenWriter constructor.

Parameters
rStreamstream C++ stream to write to
doctypeString to indicate XML doctype.
Exceptions
Exception

Definition at line 118 of file cfl_tokenwriter.cpp.

faudes::TokenWriter::~TokenWriter ( void  )

Destructor.

Calls close

Definition at line 141 of file cfl_tokenwriter.cpp.

Member Function Documentation

int faudes::TokenWriter::Columns ( void  ) const

Get number of columns in a line.

Returns

of columns in a line

Definition at line 179 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::Columns ( int  columns)

Set number of columns in a line.

Parameters
columns

of columns in a line

Definition at line 184 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::DoFlush ( void  )
private

Flush internal buffer.

Definition at line 209 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::Endl ( void  )

Write endl separator.

Exceptions
Exception

Definition at line 189 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::Endl ( bool  on)

Turn endl separator on/off.

Definition at line 203 of file cfl_tokenwriter.cpp.

bool faudes::TokenWriter::FileMode ( void  ) const
inline

Test for file mode (incl.

XmlFile)

Returns
Mode

Definition at line 123 of file cfl_tokenwriter.h.

std::string faudes::TokenWriter::FileName ( void  ) const

Get the filename.

Return dummy values for console or string mode.

Returns
Filename

Definition at line 508 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::Flush ( void  )

Flush any buffers.

Definition at line 147 of file cfl_tokenwriter.cpp.

TokenWriter& faudes::TokenWriter::operator<< ( Token rToken)
inline

Operator for writing tokens.

Parameters
rTokenToken to write
Returns
Reference to this TokenWriter
Exceptions
Exception

Definition at line 388 of file cfl_tokenwriter.h.

TokenWriter& faudes::TokenWriter::operator<< ( const std::string &  rString)
inline

Operator for writing std::strings to a stream.

Parameters
rStringString to write
Returns
Reference to this TokenWriter
Exceptions
Exception

Definition at line 403 of file cfl_tokenwriter.h.

TokenWriter& faudes::TokenWriter::operator<< ( const Idx  index)
inline

Operator for writing Idxs to a stream.

Parameters
indexIndex to write
Returns
Reference to this TokenWriter
Exceptions
Exception

Definition at line 418 of file cfl_tokenwriter.h.

bool faudes::TokenWriter::StdoutMode ( void  ) const
inline

Test for file mode.

Returns
Mode

Definition at line 139 of file cfl_tokenwriter.h.

std::string faudes::TokenWriter::Str ( void  )

Retrieve output as string (if in String mode)

Exceptions
Exception

Definition at line 160 of file cfl_tokenwriter.cpp.

std::ostream * faudes::TokenWriter::Streamp ( void  )

Access C++ stream.

Definition at line 171 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::Write ( const Token rToken)

Write next token.

Parameters
rTokenToken to write
Exceptions
Exception

Definition at line 250 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteBegin ( const std::string &  rLabel)

Write begin label.

Parameters
rLabelEnd label, e.g. "Alphabet"
Exceptions
Exception

Definition at line 408 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteBinary ( const char *  pData,
long int  len 
)

Write comment.

Parameters
lenNumber of bytes to write
pDataData to write
Exceptions
Exception

Definition at line 502 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteCharacterData ( const std::string &  rCharData)

Write character data.

Writes the specified string as it is. Thus, relevant enteties must be escaped befrand.

Parameters
rCharDataString to write
Exceptions
Exception

Definition at line 348 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteComment ( const std::string &  rComment)

Write comment in faudes format.

Parameters
rCommentComment to write
Exceptions
Exception

Definition at line 429 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteEmpty ( const std::string &  rLabel)

Write empty section label.

Parameters
rLabelEnd label, e.g. "Alphabet"
Exceptions
Exception

Definition at line 422 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteEnd ( const std::string &  rLabel)

Write end label.

Parameters
rLabelEnd label, e.g. "Alphabet"
Exceptions
Exception

Definition at line 415 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteFloat ( const double &  val)

Write float.

Parameters
valfloat to write
Exceptions
Exception

Definition at line 392 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteInteger ( Idx  index)

Write non negative integer.

Parameters
indexInteger to write
Exceptions
Exception

Definition at line 378 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteInteger16 ( long int  val)

Write integer as hex.

Parameters
valInteger to write
Exceptions
Exception

Definition at line 385 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteOption ( const std::string &  rOpt)

Write option (may not contain any "+")

Parameters
rOptoption to write
Exceptions
Exception

Definition at line 400 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteString ( const std::string &  rString)

Write string.

Writes a std string token, i.e. enclosed in double quotes any quotes in the string will be escaped, controls ignored.

Parameters
rStringString to write
Exceptions
Exception

Definition at line 292 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteText ( const std::string &  rText)

Write text.

Writes the specified string. Relevant enteties are escaped.

Parameters
rTextString to write
Exceptions
Exception

Definition at line 305 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteText ( const std::string &  rLabel,
const std::string &  rText 
)

Write text section.

Writes the specified string eclosed in begin/end tags.

Parameters
rLabelString to write
rTextString to write
Exceptions
Exception

Definition at line 340 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteText ( const Token rBeginTag,
const std::string &  rText 
)

Write text section.

Writes the specified string eclosed in begin/end tags. Use this version to have attributes in the begin tag.

Parameters
rBeginTagBegin tag.
rTextString to write
Exceptions
Exception

Definition at line 318 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteVerbatim ( const std::string &  rString)

Write string.

Writes string enclosed in verbatim markes VERBATIM, incl controls.

Parameters
rStringString to write
Exceptions
Exception

Definition at line 361 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::WriteXmlComment ( const std::string &  rComment)

Write comment in Xml format.

Parameters
rCommentComment to write
Exceptions
Exception

Definition at line 470 of file cfl_tokenwriter.cpp.

bool faudes::TokenWriter::XmlMode ( void  ) const
inline

Test for xml file mode.

Returns
Mode

Definition at line 131 of file cfl_tokenwriter.h.

Member Data Documentation

int faudes::TokenWriter::mColCount
private

Column counter.

Definition at line 451 of file cfl_tokenwriter.h.

int faudes::TokenWriter::mColumns
private

Number of columns.

Definition at line 448 of file cfl_tokenwriter.h.

std::string faudes::TokenWriter::mDocType
private

Xml doctype if in xml mode.

Definition at line 457 of file cfl_tokenwriter.h.

bool faudes::TokenWriter::mEndl
private

Endl seperator on/off.

Definition at line 454 of file cfl_tokenwriter.h.

std::string faudes::TokenWriter::mFileName
private

Filename.

Definition at line 445 of file cfl_tokenwriter.h.

std::ofstream faudes::TokenWriter::mFStream
private

Actual stream object, file output.

Definition at line 432 of file cfl_tokenwriter.h.

bool faudes::TokenWriter::mHasOutBuffer
private

Definition at line 442 of file cfl_tokenwriter.h.

Mode faudes::TokenWriter::mMode
private

Output mode.

Definition at line 426 of file cfl_tokenwriter.h.

Token faudes::TokenWriter::mOutBuffer
private

Outputbuffer.

Definition at line 441 of file cfl_tokenwriter.h.

std::ostream* faudes::TokenWriter::mpStream
private

ostream object pointer

Definition at line 429 of file cfl_tokenwriter.h.

std::ostringstream faudes::TokenWriter::mSStream
private

Actual stream object, string output.

Definition at line 435 of file cfl_tokenwriter.h.

std::ostream* faudes::TokenWriter::pSStream
private

Actual stream object, stream output.

Definition at line 438 of file cfl_tokenwriter.h.


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

libFAUDES 2.26g --- 2015.08.17 --- c++ api documentaion by doxygen