libFAUDES

Sections

Index

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, debug version 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

namespace  faudes
 

libFAUDES resides within the namespace faudes.


Defines

#define FAUDES_TYPE_DECLARATION(ftype, fbase)
 faudes type declaration macro
#define FAUDES_TYPE_IMPLEMENTATION_NEW(ftype, fbase)
 faudes type implementation macros, individual
#define FAUDES_TYPE_IMPLEMENTATION_COPY(ftype, fbase)
#define FAUDES_TYPE_IMPLEMENTATION_CAST(ftype, fbase)
#define FAUDES_TYPE_IMPLEMENTATION_ASSIGN(ftype, fbase)
#define FAUDES_TYPE_IMPLEMENTATION_EQUAL(ftype, fbase)
#define FAUDES_TYPE_IMPLEMENTATION(ftype, fbase)
 faudes type implementation macros, overall
#define FAUDES_TYPE_TIMPLEMENTATION_NEW(ftype, fbase, ftemp)
 faudes type implementation macros, individual, template version
#define FAUDES_TYPE_TIMPLEMENTATION_COPY(ftype, fbase, ftemp)
#define FAUDES_TYPE_TIMPLEMENTATION_CAST(ftype, fbase, ftemp)
#define FAUDES_TYPE_TIMPLEMENTATION_ASSIGN(ftype, fbase, ftemp)
#define FAUDES_TYPE_TIMPLEMENTATION_EQUAL(ftype, fbase, ftemp)
#define FAUDES_TYPE_TIMPLEMENTATION(ftype, fbase, ftemp)
 faudes type implementation macros, overall, template version

Detailed Description

Runtime interface, faudes types.

Definition in file cfl_types.h.


Define Documentation

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

faudes type declaration macro

Definition at line 740 of file cfl_types.h.

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

faudes type implementation macros, overall

Definition at line 781 of file cfl_types.h.

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

Definition at line 761 of file cfl_types.h.

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

Definition at line 758 of file cfl_types.h.

#define FAUDES_TYPE_IMPLEMENTATION_COPY ( ftype,
fbase   ) 
Value:
ftype* ftype::Copy(void) const {      \
    return new ftype(*this); }

Definition at line 755 of file cfl_types.h.

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

Definition at line 768 of file cfl_types.h.

#define FAUDES_TYPE_IMPLEMENTATION_NEW ( ftype,
fbase   ) 
Value:
ftype* ftype::New(void) const {     \
    return new ftype(); }

faudes type implementation macros, individual

Definition at line 752 of file cfl_types.h.

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

faudes type implementation macros, overall, template version

Definition at line 835 of file cfl_types.h.

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

Definition at line 815 of file cfl_types.h.

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

Definition at line 812 of file cfl_types.h.

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

Definition at line 809 of file cfl_types.h.

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

Definition at line 822 of file cfl_types.h.

#define FAUDES_TYPE_TIMPLEMENTATION_NEW ( ftype,
fbase,
ftemp   ) 
Value:
ftemp ftype* ftype::New(void) const {     \
    return new ftype(); }

faudes type implementation macros, individual, template version

Definition at line 806 of file cfl_types.h.

libFAUDES 2.16b --- 2010-9-8 --- c++ source docu by doxygen 1.6.3