cfl_types.h File Reference

Runtime interface, faudes types. More...

#include <list>
#include <string>
#include <vector>
#include <map>
#include <utility>
#include <iostream>
#include <typeinfo>
#include <algorithm>
#include "cfl_definitions.h"
#include "cfl_token.h"
#include "cfl_tokenreader.h"
#include "cfl_tokenwriter.h"
#include "cfl_exception.h"

Go to the source code of this file.

Classes

class  faudes::Type
 Base class of all libFAUDES objects that participate in the run-time interface. More...
 
class  faudes::Documentation
 faudes type implementation macros, overall More...
 
class  faudes::TypeDefinition
 A TypeDefinition defines a faudes-type in that it specifies a faudes-type name to identify the type and a method NewObject() to instantiate objects of the respective type. More...
 

Namespaces

 faudes
 libFAUDES resides within the namespace faudes.
 

Macros

#define FAUDES_TYPE_DECLARATION(ftype, ctype, cbase)
 faudes type declaration macro More...
 
#define FAUDES_TYPE_TDECLARATION(ftype, ctype, cbase)
 faudes type declaration macro, template version More...
 
#define FAUDES_TYPE_IMPLEMENTATION_NEW(ftype, ctype, cbase)    ctype* ctype::New(void) const { return new ctype(); }
 faudes type implementation macros More...
 
#define FAUDES_TYPE_IMPLEMENTATION_COPY(ftype, ctype, cbase)    ctype* ctype::Copy(void) const { return new ctype(*this); }
 
#define FAUDES_TYPE_IMPLEMENTATION_CAST(ftype, ctype, cbase)
 
#define FAUDES_TYPE_IMPLEMENTATION_ASSIGN(ftype, ctype, cbase)
 
#define FAUDES_TYPE_IMPLEMENTATION_EQUAL(ftype, ctype, cbase)
 
#define FAUDES_TYPE_TIMPLEMENTATION_NEW(ftype, ctype, cbase, ctemp)
 faudes type implementation macros, template version More...
 
#define FAUDES_TYPE_TIMPLEMENTATION_COPY(ftype, ctype, cbase, ctemp)
 
#define FAUDES_TYPE_TIMPLEMENTATION_CAST(ftype, ctype, cbase, ctemp)
 
#define FAUDES_TYPE_TIMPLEMENTATION_ASSIGN(ftype, ctype, cbase, ctemp)
 
#define FAUDES_TYPE_TIMPLEMENTATION_EQUAL(ftype, ctype, cbase, ctemp)
 
#define FAUDES_TYPE_IMPLEMENTATION(ftype, ctype, cbase)
 faudes type implementation macros, overall More...
 
#define FAUDES_TYPE_TIMPLEMENTATION(ftype, ctype, cbase, ctemp)
 faudes type implementation macros, overall More...
 

Detailed Description

Runtime interface, faudes types.

Definition in file cfl_types.h.

Macro Definition Documentation

◆ FAUDES_TYPE_DECLARATION

#define FAUDES_TYPE_DECLARATION (   ftype,
  ctype,
  cbase 
)
Value:
public: virtual ctype* New(void) const; \
public: virtual ctype* Copy(void) const; \
public: virtual const Type* Cast(const Type* pOther) const; \
public: virtual ctype& Assign(const Type& rSrc); \
public: virtual bool Equal(const Type& rOther) const; \
public: virtual ctype& operator=(const ctype& rSrc); \
public: virtual bool operator==(const ctype& rOther) const; \
public: virtual bool operator!=(const ctype& rOther) const;

faudes type declaration macro

Definition at line 867 of file cfl_types.h.

◆ FAUDES_TYPE_IMPLEMENTATION

#define FAUDES_TYPE_IMPLEMENTATION (   ftype,
  ctype,
  cbase 
)
Value:
ctype* ctype::New(void) const { \
return new ctype(); } \
ctype* ctype::Copy(void) const { \
return new ctype(*this); } \
const Type* ctype::Cast(const Type* pOther) const { \
return dynamic_cast< const ctype * >(pOther); } \
ctype& ctype::Assign(const Type& rSrc) { \
if(const ctype* csattr=dynamic_cast< const ctype * >(&rSrc)) { \
this->Clear(); this->DoAssign(*csattr);} \
else { \
cbase::Assign(rSrc);}; \
return *this;} \
ctype& ctype::operator=(const ctype& rSrc) { this->Clear(); this->DoAssign(rSrc); return *this; } \
bool ctype::Equal(const Type& rOther) const { \
if(&rOther==this) return true; \
if(typeid(rOther) != typeid(*this)) return false; \
const ctype* csattr=dynamic_cast<const ctype*>(&rOther); \
if(!csattr) return false; \
if(!this->DoEqual(*csattr)) return false; \
return true;} \
bool ctype::operator==(const ctype& rOther) const { return this->DoEqual(rOther); } \
bool ctype::operator!=(const ctype& rOther) const { return !this->DoEqual(rOther); }

faudes type implementation macros, overall

Definition at line 946 of file cfl_types.h.

◆ FAUDES_TYPE_IMPLEMENTATION_ASSIGN

#define FAUDES_TYPE_IMPLEMENTATION_ASSIGN (   ftype,
  ctype,
  cbase 
)
Value:
ctype& ctype::Assign(const Type& rSrc) { \
if(const ctype* csattr=dynamic_cast< const ctype * >(&rSrc)) { \
this->Clear(); DoAssign(*csattr);} \
else { \
cbase::Assign(rSrc);}; \
return *this;} \
ctype& ctype::operator=(const ctype& rSrc) { this->Clear(); DoAssign(rSrc); return *this; }

Definition at line 896 of file cfl_types.h.

◆ FAUDES_TYPE_IMPLEMENTATION_CAST

#define FAUDES_TYPE_IMPLEMENTATION_CAST (   ftype,
  ctype,
  cbase 
)
Value:
const Type* ctype::Cast(const Type* pOther) const { \
return dynamic_cast< const ctype * >(pOther); }

Definition at line 893 of file cfl_types.h.

◆ FAUDES_TYPE_IMPLEMENTATION_COPY

#define FAUDES_TYPE_IMPLEMENTATION_COPY (   ftype,
  ctype,
  cbase 
)     ctype* ctype::Copy(void) const { return new ctype(*this); }

Definition at line 891 of file cfl_types.h.

◆ FAUDES_TYPE_IMPLEMENTATION_EQUAL

#define FAUDES_TYPE_IMPLEMENTATION_EQUAL (   ftype,
  ctype,
  cbase 
)
Value:
bool ctype::Equal(const Type& rOther) const { \
if(&rOther==this) return true; \
if(typeid(rOther) != typeid(*this)) return false; \
const ctype* csattr=dynamic_cast<const ctype*>(&rOther); \
if(!csattr) return false; \
if(!DoEqual(*csattr)) return false; \
return true;} \
bool ctype::operator==(const ctype& rOther) const { return DoEqual(rOther); } \
bool ctype::operator!=(const ctype& rOther) const { return !DoEqual(rOther); }

Definition at line 904 of file cfl_types.h.

◆ FAUDES_TYPE_IMPLEMENTATION_NEW

#define FAUDES_TYPE_IMPLEMENTATION_NEW (   ftype,
  ctype,
  cbase 
)     ctype* ctype::New(void) const { return new ctype(); }

faudes type implementation macros

Definition at line 889 of file cfl_types.h.

◆ FAUDES_TYPE_TDECLARATION

#define FAUDES_TYPE_TDECLARATION (   ftype,
  ctype,
  cbase 
)
Value:
public: virtual ctype* New(void) const; \
public: virtual ctype* Copy(void) const; \
public: virtual const Type* Cast(const Type* pOther) const; \
public: virtual ctype& Assign(const Type& rSrc); \
public: virtual bool Equal(const Type& rOther) const; \
public: virtual ctype& operator=(const ctype& rSrc); \
public: virtual bool operator==(const ctype& rOther) const; \
public: virtual bool operator!=(const ctype& rOther) const;

faudes type declaration macro, template version

Definition at line 878 of file cfl_types.h.

◆ FAUDES_TYPE_TIMPLEMENTATION

#define FAUDES_TYPE_TIMPLEMENTATION (   ftype,
  ctype,
  cbase,
  ctemp 
)
Value:
ctemp ctype* ctype::New(void) const { \
return new ctype(); } \
ctemp ctype* ctype::Copy(void) const { \
return new ctype(*this); } \
ctemp const Type* ctype::Cast(const Type* pOther) const { \
return dynamic_cast< const ctype * >(pOther); } \
ctemp ctype& ctype::Assign(const Type& rSrc) { \
if(const ctype* csattr=dynamic_cast< const ctype * >(&rSrc)) { \
this->Clear(); this->DoAssign(*csattr);} \
else { \
cbase::Assign(rSrc);}; \
return *this;} \
ctemp ctype& ctype::operator=(const ctype& rSrc) { this->Clear(); this->DoAssign(rSrc); return *this; } \
ctemp bool ctype::Equal(const Type& rOther) const { \
if(&rOther==this) return true; \
if(typeid(rOther) != typeid(*this)) return false; \
const ctype* csattr=dynamic_cast<const ctype*>(&rOther); \
if(!csattr) return false; \
if(!this->DoEqual(*csattr)) return false; \
return true;} \
ctemp bool ctype::operator==(const ctype& rOther) const { return this->DoEqual(rOther); } \
ctemp bool ctype::operator!=(const ctype& rOther) const { return !this->DoEqual(rOther); }

faudes type implementation macros, overall

Definition at line 972 of file cfl_types.h.

◆ FAUDES_TYPE_TIMPLEMENTATION_ASSIGN

#define FAUDES_TYPE_TIMPLEMENTATION_ASSIGN (   ftype,
  ctype,
  cbase,
  ctemp 
)
Value:
ctemp ctype& ctype::Assign(const Type& rSrc) { \
if(const ctype* csattr=dynamic_cast< const ctype * >(&rSrc)) { \
this->Clear(); DoAssign(*csattr);} \
else { \
cbase::Assign(rSrc);}; \
return *this;} \
ctemp ctype& ctype::operator=(const ctype& rSrc) { this->Clear(); DoAssign(rSrc); return *this; }

Definition at line 925 of file cfl_types.h.

◆ FAUDES_TYPE_TIMPLEMENTATION_CAST

#define FAUDES_TYPE_TIMPLEMENTATION_CAST (   ftype,
  ctype,
  cbase,
  ctemp 
)
Value:
ctemp const Type* ctype::Cast(const Type* pOther) const { \
return dynamic_cast< const ctype * >(pOther); }

Definition at line 922 of file cfl_types.h.

◆ FAUDES_TYPE_TIMPLEMENTATION_COPY

#define FAUDES_TYPE_TIMPLEMENTATION_COPY (   ftype,
  ctype,
  cbase,
  ctemp 
)
Value:
ctemp ctype* ctype::Copy(void) const { \
return new ctype(*this); }

Definition at line 919 of file cfl_types.h.

◆ FAUDES_TYPE_TIMPLEMENTATION_EQUAL

#define FAUDES_TYPE_TIMPLEMENTATION_EQUAL (   ftype,
  ctype,
  cbase,
  ctemp 
)
Value:
ctemp bool ctype::Equal(const Type& rOther) const { \
if(&rOther==this) return true; \
if(typeid(rOther) != typeid(*this)) return false; \
const ctype* csattr=dynamic_cast<const ctype*>(&rOther); \
if(!csattr) return false; \
if(!DoEqual(*csattr)) return false; \
return true;} \
ctemp bool ctype::operator==(const ctype& rOther) const { return DoEqual(rOther); } \
ctemp bool ctype::operator!=(const ctype& rOther) const { return !DoEqual(rOther); }

Definition at line 933 of file cfl_types.h.

◆ FAUDES_TYPE_TIMPLEMENTATION_NEW

#define FAUDES_TYPE_TIMPLEMENTATION_NEW (   ftype,
  ctype,
  cbase,
  ctemp 
)
Value:
ctemp ctype* ctype::New(void) const { \
return new ctype(); }

faudes type implementation macros, template version

Definition at line 916 of file cfl_types.h.

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