libFAUDES

Sections

Index

rtitypes.h File Reference


Detailed Description

Runtime interface, faudes types.

Definition in file rtitypes.h.

#include <list>
#include <string>
#include <vector>
#include <map>
#include <utility>
#include <iostream>
#include <typeinfo>
#include <algorithm>
#include "definitions.h"
#include "token.h"
#include "tokenreader.h"
#include "tokenwriter.h"
#include "exception.h"

Go to the source code of this file.

Namespaces

namespace  faudes

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...
class  faudes::Integer
 Elementary type. More...
class  faudes::String
 Elementary type. More...
class  faudes::Boolean
 Elementary type. More...

Defines

#define FAUDES_TYPE_DECLARATION(ftype, fbase)
 faudes type declaration macro
#define FAUDES_TYPE_IMPLEMENTATION_NEW(ftype, fbase, ftemp)
 faudes type implementation macros, individual
#define FAUDES_TYPE_IMPLEMENTATION_COPY(ftype, fbase, ftemp)
#define FAUDES_TYPE_IMPLEMENTATION_CAST(ftype, fbase, ftemp)
#define FAUDES_TYPE_IMPLEMENTATION_ASSIGN(ftype, fbase, ftemp)
#define FAUDES_TYPE_IMPLEMENTATION_EQUAL(ftype, fbase, ftemp)
#define FAUDES_TYPE_IMPLEMENTATION(ftype, fbase, ftemp)
 faudes type implementation macros, overall

Functions

void faudes::IntegerSum (const Integer &arg1, const Integer &arg2, Integer &res)


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 719 of file rtitypes.h.

#define FAUDES_TYPE_IMPLEMENTATION ( 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

Definition at line 759 of file rtitypes.h.

#define FAUDES_TYPE_IMPLEMENTATION_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 740 of file rtitypes.h.

#define FAUDES_TYPE_IMPLEMENTATION_CAST ( ftype,
fbase,
ftemp   ) 

Value:

ftemp const ftype* ftype::Cast(const Type* pOther) const { \
    return dynamic_cast<const ftype*>(pOther);}

Definition at line 737 of file rtitypes.h.

#define FAUDES_TYPE_IMPLEMENTATION_COPY ( ftype,
fbase,
ftemp   ) 

Value:

ftemp ftype* ftype::Copy(void) const {      \
    return new ftype(*this); }

Definition at line 734 of file rtitypes.h.

#define FAUDES_TYPE_IMPLEMENTATION_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 746 of file rtitypes.h.

#define FAUDES_TYPE_IMPLEMENTATION_NEW ( ftype,
fbase,
ftemp   ) 

Value:

ftemp ftype* ftype::New(void) const {     \
    return new ftype(); }
faudes type implementation macros, individual

Definition at line 731 of file rtitypes.h.

libFAUDES 2.14g --- 2009-12-3 --- c++ source docu by doxygen 1.5.6