libFAUDES

Sections

Index

faudes::TokenWriter Class Reference
[Faudes object serialization.]

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

#include <cfl_tokenwriter.h>

List of all members.

Public Types

enum  Mode { File, XmlFile, Stdout, String }
 

Mode of operation: write to from 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 (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).
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 &rLabel, const std::string &rText)
 Write text section.
void WriteText (const Token &rBeginTag, const std::string &rText)
 Write text section.
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 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::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 from file, string or stdout.

Enumerator:
File 
XmlFile 
Stdout 
String 

Definition at line 49 of file cfl_tokenwriter.h.


Constructor & Destructor Documentation

faudes::TokenWriter::TokenWriter ( Mode  mode  ) 

Console or String TokenWriter constructor.

Technical detail: the console tokenwriter holds a ref. to std::cout; it will behave strange and perhaps cause segfaults if it is instantiated befor std::cout is up; you can avoid this issue by instantiating you console tokenwriter using the new operator.

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:
rFilename File to write
openmode std::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:
rFilename File to write
doctype String to indicate XML doctype.
Exceptions:
Exception 

Definition at line 47 of file cfl_tokenwriter.cpp.

faudes::TokenWriter::~TokenWriter ( void   ) 

Destructor.

Calls close

Definition at line 113 of file cfl_tokenwriter.cpp.


Member Function Documentation

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

Set number of columns in a line.

Parameters:
columns # of columns in a line

Definition at line 139 of file cfl_tokenwriter.cpp.

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

Get number of columns in a line.

Returns:
# of columns in a line

Definition at line 134 of file cfl_tokenwriter.cpp.

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

Turn endl separator on/off.

Definition at line 157 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::Endl ( void   ) 

Write endl separator.

Exceptions:
Exception 

Definition at line 144 of file cfl_tokenwriter.cpp.

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

Test for file mode (incl.

XmlFile)

Returns:
Mode

Definition at line 114 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 376 of file cfl_tokenwriter.cpp.

void faudes::TokenWriter::Flush ( void   ) 

Flush any buffers.

Definition at line 118 of file cfl_tokenwriter.cpp.

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

Operator for writing Idxs to a stream.

Parameters:
index Index to write
Returns:
Reference to this TokenWriter
Exceptions:
Exception 

Definition at line 378 of file cfl_tokenwriter.h.

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

Operator for writing std::strings to a stream.

Parameters:
rString String to write
Returns:
Reference to this TokenWriter
Exceptions:
Exception 

Definition at line 363 of file cfl_tokenwriter.h.

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

Operator for writing tokens.

Parameters:
rToken Token to write
Returns:
Reference to this TokenWriter
Exceptions:
Exception 

Definition at line 348 of file cfl_tokenwriter.h.

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

Test for file mode.

Returns:
Mode

Definition at line 130 of file cfl_tokenwriter.h.

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

Retrieve output as string (if in String mode).

Exceptions:
Exception 

Definition at line 124 of file cfl_tokenwriter.cpp.

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

Write next token.

Parameters:
rToken Token to write
Exceptions:
Exception 

Definition at line 163 of file cfl_tokenwriter.cpp.

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

Write begin label.

Parameters:
rLabel End label, e.g. "Alphabet"
Exceptions:
Exception 

Definition at line 279 of file cfl_tokenwriter.cpp.

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

Write comment.

Parameters:
len Number of bytes to write
pData Data to write
Exceptions:
Exception 

Definition at line 371 of file cfl_tokenwriter.cpp.

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

Write comment in faudes format.

Parameters:
rComment Comment to write
Exceptions:
Exception 

Definition at line 300 of file cfl_tokenwriter.cpp.

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

Write empty section label.

Parameters:
rLabel End label, e.g. "Alphabet"
Exceptions:
Exception 

Definition at line 293 of file cfl_tokenwriter.cpp.

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

Write end label.

Parameters:
rLabel End label, e.g. "Alphabet"
Exceptions:
Exception 

Definition at line 286 of file cfl_tokenwriter.cpp.

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

Write float.

Parameters:
val float to write
Exceptions:
Exception 

Definition at line 263 of file cfl_tokenwriter.cpp.

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

Write non negative integer.

Parameters:
index Integer to write
Exceptions:
Exception 

Definition at line 249 of file cfl_tokenwriter.cpp.

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

Write integer as hex.

Parameters:
val Integer to write
Exceptions:
Exception 

Definition at line 256 of file cfl_tokenwriter.cpp.

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

Write option (may not contain any "+").

Parameters:
rOpt option to write
Exceptions:
Exception 

Definition at line 271 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:
rString String to write
Exceptions:
Exception 

Definition at line 191 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:
rBeginTag Begin tag.
rText String to write
Exceptions:
Exception 

Definition at line 204 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:
rLabel String to write
rText String to write
Exceptions:
Exception 

Definition at line 225 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:
rString String to write
Exceptions:
Exception 

Definition at line 233 of file cfl_tokenwriter.cpp.

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

Write comment in Xml format.

Parameters:
rComment Comment to write
Exceptions:
Exception 

Definition at line 340 of file cfl_tokenwriter.cpp.

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

Test for xml file mode.

Returns:
Mode

Definition at line 122 of file cfl_tokenwriter.h.


Member Data Documentation

Column counter.

Definition at line 404 of file cfl_tokenwriter.h.

Number of columns.

Definition at line 401 of file cfl_tokenwriter.h.

std::string faudes::TokenWriter::mDocType [private]

Xml doctype if in xml mode.

Definition at line 410 of file cfl_tokenwriter.h.

Endl seperator on/off.

Definition at line 407 of file cfl_tokenwriter.h.

std::string faudes::TokenWriter::mFileName [private]

Filename.

Definition at line 398 of file cfl_tokenwriter.h.

std::ofstream faudes::TokenWriter::mFStream [private]

Actual stream object, file output.

Definition at line 392 of file cfl_tokenwriter.h.

Output mode.

Definition at line 386 of file cfl_tokenwriter.h.

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

ostream object pointer

Definition at line 389 of file cfl_tokenwriter.h.

std::ostringstream faudes::TokenWriter::mSStream [private]

Actual stream object, string output.

Definition at line 395 of file cfl_tokenwriter.h.


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

libFAUDES 2.18b --- 2010-12-17 --- c++ source docu by doxygen 1.6.3