Detailed Description

faudes type implementation macros, overall

faudes type implementation macros, individual, template version faudes type implementation macros, overall, template version faudes type implementation macros, overall, debug version Structure to hold documentation data relating to a faudes-type or -function. This class is the common base for faudes::TypeDefinition and faudes::FunctionDefinition. It supports token io as demonstrated by the follwoing example for a type defintion:

<TypeDefinition name="CoreFaudes::Generator" ctype="faudes::Generator">
<Documentation ref="generators.html#plain">
The common 5 tuple G=(Sigma, Q, delta, Qo, Qm).
<Keywords> "generator" "language" </Keywords>
</TypeDefinition>
Documentation(void)
Constructor.
Definition: cfl_types.cpp:352
const std::string & Keywords(void) const
Definition: cfl_types.cpp:401

Technical detail: Documentation is derived from Type for the purpose of token IO. We still implement the faudes type interface to make it a fully qualified faudes data type.

Technical detail: To facilitate inheritance, token io of member data and token io of the section tags is separated.

Definition at line 1128 of file cfl_types.h.

#include <cfl_types.h>

Public Member Functions

 Documentation (void)
 Constructor. More...
 
 Documentation (const Documentation &rOther)
 Copy constructor. More...
 
virtual ~Documentation (void)
 Destructor. More...
 
void Clear (void)
 Clear. More...
 
const std::string & Name (void) const
 Get name of the entety to document (aka faudes-type or faudes-function). More...
 
const std::string & PlugIn (void) const
 Get name of plugin. More...
 
const std::string & CType (void) const
 Get corresponding C++ type. More...
 
const std::string & TextDoc (void) const
 
const std::string & HtmlDoc (void) const
 
const std::string & Keywords (void) const
 
std::string MatchKeyword (const std::string &rPattern) const
 Search comma-seperated keywords for a substring. More...
 
int KeywordsSize (void) const
 Not implemented. More...
 
std::string KeywordAt (int pos) const
 
bool AutoRegistered (void) const
 Get auto-register flag. More...
 
bool ApplicationRegistered (void) const
 Get application-registered flag. More...
 
virtual void MergeDocumentation (TokenReader &rTr)
 Merge documentation from token stream. More...
 
- Public Member Functions inherited from faudes::Type
 Type (void)
 Constructor. More...
 
 Type (const Type &rType)
 Copy constructor. More...
 
virtual ~Type (void)
 Destructor. More...
 
virtual TypeNew (void) const
 Construct on heap. More...
 
virtual TypeCopy (void) const
 Construct on heap. More...
 
virtual const TypeCast (const Type *pOther) const
 Cast other object to this type. More...
 
virtual TypeAssign (const Type &rSrc)
 Assign configuration data from other object. More...
 
virtual Typeoperator= (const Type &rSrc)
 Assign configurationdata from other object. More...
 
virtual bool Equal (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual bool operator== (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual bool operator!= (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual const std::string & TypeName (void) const
 Get objects's type name. More...
 
void Write (const Type *pContext=0) const
 Write configuration data to console. More...
 
void Write (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0, std::ios::openmode openmode=std::ios::out|std::ios::trunc) const
 Write configuration data to a file. More...
 
void Write (const std::string &pFileName, std::ios::openmode openmode) const
 Write configuration data to a file. More...
 
void Write (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to TokenWriter. More...
 
virtual void XWrite (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to an XML file. More...
 
void XWrite (const Type *pContext=0) const
 Write configuration data in XML format to concole Note: this write function uses the virtual function DoXWrite(), to be reimplemented by derived classes. More...
 
void XWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data in XML format to TokenWriter. More...
 
std::string ToString (const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to a string. More...
 
std::string ToText (const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to a formated string. More...
 
void DWrite (const Type *pContext=0) const
 Write configuration data to console, debugging format. More...
 
void DWrite (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0, std::ios::openmode openmode=std::ios::out|std::ios::trunc) const
 Write configuration data to a file, debugging format. More...
 
void DWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data in debug format to TokenWriter. More...
 
void SWrite (TokenWriter &rTw) const
 Write statistics comment to TokenWriter. More...
 
void SWrite (void) const
 Write statistics comment to console. More...
 
std::string ToSText (void) const
 Write statistics to a string. More...
 
void Read (const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from file with label specified. More...
 
void FromString (const std::string &rString, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from a string. More...
 
void Read (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from TokenReader with label sepcified. More...
 

Protected Member Functions

void Name (const std::string &name)
 Set name. More...
 
void PlugIn (const std::string &plugin)
 Set name of plugin. More...
 
void CType (const std::string &name)
 Set C++ type. More...
 
void TextDoc (const std::string &textdoc)
 Set a short textual documentation. More...
 
void AutoRegistered (bool flag)
 Set auto-register flag. More...
 
void ApplicationRegistered (bool flag)
 Set application-registered flag. More...
 
void HtmlDoc (const std::string &fname)
 Set name of file pointing to the html documentation. More...
 
void AddKeyword (const std::string &rKeyword)
 Append keyword. More...
 
void DoAssign (const Documentation &rSrc)
 Std faudes type interface: assignment. More...
 
bool DoEqual (const Documentation &rOther) const
 Std faudes type interface: test equality. More...
 
virtual void DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data of this object from TokenReader. More...
 
virtual void DoReadCore (TokenReader &rTr)
 Read configuration data of this object from TokenReader. More...
 
virtual void DoWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data of this object to TokenWriter. More...
 
virtual void DoWriteCore (TokenWriter &rTw) const
 Write configuration data of this object to TokenWriter. More...
 
- Protected Member Functions inherited from faudes::Type
void DoAssign (const Type &rSrc)
 Assign configuration data from other object. More...
 
bool DoEqual (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual void DoXWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data of this object to TokenWriter in XML format. More...
 
virtual void DoDWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data in debugging format to TokenWriter. More...
 
virtual void DoSWrite (TokenWriter &rTw) const
 Write statistical data as a comment to TokenWriter. More...
 
virtual const TypeDefinitionTypeDefinitionp (void) const
 Get objects's type definition. More...
 
virtual Token XBeginTag (const std::string &rLabel="", const std::string &rFallbackLabel="") const
 

Protected Attributes

std::string mName
 Faudes name. More...
 
std::string mPlugIn
 Faudes plugin. More...
 
std::string mCType
 Corresponing C++ type, or "" if no such. More...
 
std::string mTextDoc
 String containing the text-documentation. More...
 
std::string mHtmlDoc
 String containing the filename of the corresponding html-documentation. More...
 
std::string mKeywords
 Comma-seperated string containing all keywords. More...
 
bool mAutoRegistered
 Flag to indicate automated registration. More...
 
bool mApplicationRegistered
 Flag to indicate application registration. More...
 

Static Protected Attributes

static const char mDelim = ';'
 Constant characted used to seperate keywords. More...
 

Constructor & Destructor Documentation

◆ Documentation() [1/2]

faudes::Documentation::Documentation ( void  )

Constructor.

Definition at line 352 of file cfl_types.cpp.

◆ Documentation() [2/2]

faudes::Documentation::Documentation ( const Documentation rOther)

Copy constructor.

Definition at line 358 of file cfl_types.cpp.

◆ ~Documentation()

virtual faudes::Documentation::~Documentation ( void  )
inlinevirtual

Destructor.

Definition at line 1141 of file cfl_types.h.

Member Function Documentation

◆ AddKeyword()

void faudes::Documentation::AddKeyword ( const std::string &  rKeyword)
protected

Append keyword.

Parameters
rKeywordKeyword

Definition at line 415 of file cfl_types.cpp.

◆ ApplicationRegistered() [1/2]

void faudes::Documentation::ApplicationRegistered ( bool  flag)
protected

Set application-registered flag.

See also AutoRegistered(void)

Parameters
flagFlag value.

Definition at line 412 of file cfl_types.cpp.

◆ ApplicationRegistered() [2/2]

bool faudes::Documentation::ApplicationRegistered ( void  ) const

Get application-registered flag.

Returns
True <> registered by application

Definition at line 403 of file cfl_types.cpp.

◆ AutoRegistered() [1/2]

void faudes::Documentation::AutoRegistered ( bool  flag)
protected

Set auto-register flag.

See also AutoRegistered(void)

Parameters
flagFlag value.

Definition at line 411 of file cfl_types.cpp.

◆ AutoRegistered() [2/2]

bool faudes::Documentation::AutoRegistered ( void  ) const

Get auto-register flag.

This flag indicated that the respective type was (will be) registered by a libFAUDES static initialisation protorype.

Returns
True <> C++-automatic-registration

Definition at line 402 of file cfl_types.cpp.

◆ Clear()

void faudes::Documentation::Clear ( void  )
virtual

Clear.

Reimplemented from faudes::Type.

Reimplemented in faudes::TypeDefinition, and faudes::LuaFunctionDefinition.

Definition at line 384 of file cfl_types.cpp.

◆ CType() [1/2]

void faudes::Documentation::CType ( const std::string &  name)
protected

Set C++ type.

Parameters
nameNew ctype.

Definition at line 408 of file cfl_types.cpp.

◆ CType() [2/2]

const std::string & faudes::Documentation::CType ( void  ) const

Get corresponding C++ type.

Returns
CType, or "" if no such

Definition at line 398 of file cfl_types.cpp.

◆ DoAssign()

void faudes::Documentation::DoAssign ( const Documentation rSrc)
protected

Std faudes type interface: assignment.

Parameters
rSrcSource to copy from
Returns
Reference to this object.

Definition at line 363 of file cfl_types.cpp.

◆ DoEqual()

bool faudes::Documentation::DoEqual ( const Documentation rOther) const
protected

Std faudes type interface: test equality.

Parameters
rOtherOther object to compare with.
Returns
True on match.

Definition at line 373 of file cfl_types.cpp.

◆ DoRead()

void faudes::Documentation::DoRead ( TokenReader rTr,
const std::string &  rLabel = "",
const Type pContext = 0 
)
protectedvirtual

Read configuration data of this object from TokenReader.

This virtual function reads documentation from a token stream. The section defaults to Documentation. It invokes DoReadCore to do the member data token reading.

Parameters
rTrTokenReader to read from
rLabelSection to read
pContextRead context to provide contextual information (ignored)
Exceptions
Exception
  • Token mismatch (id 50, 51, 52)
  • IO Error (id 1)

Reimplemented from faudes::Type.

Reimplemented in faudes::TypeDefinition, faudes::FunctionDefinition, and faudes::LuaFunctionDefinition.

Definition at line 513 of file cfl_types.cpp.

◆ DoReadCore()

void faudes::Documentation::DoReadCore ( TokenReader rTr)
protectedvirtual

Read configuration data of this object from TokenReader.

This virtual function reads documentation member data only. It does NOT read the enclosing begin and end tokens.

Parameters
rTrTokenReader to read from
Exceptions
Exception
  • Token mismatch (id 50, 51, 52)
  • IO Error (id 1)

Reimplemented in faudes::TypeDefinition, faudes::FunctionDefinition, and faudes::LuaFunctionDefinition.

Definition at line 564 of file cfl_types.cpp.

◆ DoWrite()

void faudes::Documentation::DoWrite ( TokenWriter rTw,
const std::string &  rLabel = "",
const Type pContext = 0 
) const
protectedvirtual

Write configuration data of this object to TokenWriter.

This virtual function writes documentation to a token stream. The section defaults to Documentation. It invokes DoWriteCore to do the actual member data writing.

Parameters
rTwReference to TokenWriter
rLabelLabel of section to write
pContextWrite context to provide contextual information
Exceptions
Exception
  • IO errors (id 2)

Reimplemented from faudes::Type.

Reimplemented in faudes::TypeDefinition, faudes::FunctionDefinition, and faudes::LuaFunctionDefinition.

Definition at line 642 of file cfl_types.cpp.

◆ DoWriteCore()

void faudes::Documentation::DoWriteCore ( TokenWriter rTw) const
protectedvirtual

Write configuration data of this object to TokenWriter.

This virtual function reads documentation members only. It does NOT write enclosing begin and end tokens.

Parameters
rTwReference to TokenWriter
Exceptions
Exception
  • IO errors (id 2)

Reimplemented in faudes::TypeDefinition, faudes::FunctionDefinition, and faudes::LuaFunctionDefinition.

Definition at line 667 of file cfl_types.cpp.

◆ HtmlDoc() [1/2]

void faudes::Documentation::HtmlDoc ( const std::string &  fname)
protected

Set name of file pointing to the html documentation.

Parameters
fnameFilename

Definition at line 410 of file cfl_types.cpp.

◆ HtmlDoc() [2/2]

const std::string & faudes::Documentation::HtmlDoc ( void  ) const
Returns
Filename pointing to the html documentation.

Definition at line 400 of file cfl_types.cpp.

◆ KeywordAt()

std::string faudes::Documentation::KeywordAt ( int  pos) const
Parameters
posPosition of keyword
Returns
Keyword at specified position (or "" if pos out of range)

Definition at line 452 of file cfl_types.cpp.

◆ Keywords()

const std::string & faudes::Documentation::Keywords ( void  ) const
Returns
CSV-string containing keywords.

Definition at line 401 of file cfl_types.cpp.

◆ KeywordsSize()

int faudes::Documentation::KeywordsSize ( void  ) const

Not implemented.

Returns
Number of keywords.

Definition at line 476 of file cfl_types.cpp.

◆ MatchKeyword()

std::string faudes::Documentation::MatchKeyword ( const std::string &  rPattern) const

Search comma-seperated keywords for a substring.

This should be extended to regular expressions in a future release.

Parameters
rPatternString-pattern.
Returns
Matching keyword or "" if no match

Definition at line 425 of file cfl_types.cpp.

◆ MergeDocumentation()

void faudes::Documentation::MergeDocumentation ( TokenReader rTr)
virtual

Merge documentation from token stream.

An exception is thrown if the current type name differs from the one in the documentation.

Parameters
rTrTokenReader to read from.
Exceptions
Exception
  • Type mismatch (id )
  • Token mismatch (id 50, 51, 52)
  • IO Error (id 1)

Definition at line 491 of file cfl_types.cpp.

◆ Name() [1/2]

void faudes::Documentation::Name ( const std::string &  name)
protectedvirtual

Set name.

Parameters
nameNew name.

Reimplemented from faudes::Type.

Definition at line 406 of file cfl_types.cpp.

◆ Name() [2/2]

const std::string & faudes::Documentation::Name ( void  ) const
virtual

Get name of the entety to document (aka faudes-type or faudes-function).

Returns
Name

Reimplemented from faudes::Type.

Definition at line 396 of file cfl_types.cpp.

◆ PlugIn() [1/2]

void faudes::Documentation::PlugIn ( const std::string &  plugin)
protected

Set name of plugin.

Parameters
pluginNew name.

Definition at line 407 of file cfl_types.cpp.

◆ PlugIn() [2/2]

const std::string & faudes::Documentation::PlugIn ( void  ) const

Get name of plugin.

The plugin name defaults to CoreFaudes.

Returns
Name

Definition at line 397 of file cfl_types.cpp.

◆ TextDoc() [1/2]

void faudes::Documentation::TextDoc ( const std::string &  textdoc)
protected

Set a short textual documentation.

Parameters
textdocNew textual documentation.

Definition at line 409 of file cfl_types.cpp.

◆ TextDoc() [2/2]

const std::string & faudes::Documentation::TextDoc ( void  ) const
Returns
Short textual documentation.

Definition at line 399 of file cfl_types.cpp.

Member Data Documentation

◆ mApplicationRegistered

bool faudes::Documentation::mApplicationRegistered
protected

Flag to indicate application registration.

Definition at line 1439 of file cfl_types.h.

◆ mAutoRegistered

bool faudes::Documentation::mAutoRegistered
protected

Flag to indicate automated registration.

Definition at line 1436 of file cfl_types.h.

◆ mCType

std::string faudes::Documentation::mCType
protected

Corresponing C++ type, or "" if no such.

Definition at line 1421 of file cfl_types.h.

◆ mDelim

const char faudes::Documentation::mDelim = ';'
staticprotected

Constant characted used to seperate keywords.

Definition at line 1433 of file cfl_types.h.

◆ mHtmlDoc

std::string faudes::Documentation::mHtmlDoc
protected

String containing the filename of the corresponding html-documentation.

Definition at line 1427 of file cfl_types.h.

◆ mKeywords

std::string faudes::Documentation::mKeywords
protected

Comma-seperated string containing all keywords.

Definition at line 1430 of file cfl_types.h.

◆ mName

std::string faudes::Documentation::mName
protected

Faudes name.

Definition at line 1415 of file cfl_types.h.

◆ mPlugIn

std::string faudes::Documentation::mPlugIn
protected

Faudes plugin.

Definition at line 1418 of file cfl_types.h.

◆ mTextDoc

std::string faudes::Documentation::mTextDoc
protected

String containing the text-documentation.

Definition at line 1424 of file cfl_types.h.


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

libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen