OpenLexocad  27.1
Base.h File Reference
#include <string>
#include <map>
#include "Type.h"

Go to the source code of this file.

Classes

class  Base::BaseClass
 BaseClass class and root of the type system. More...
 

Namespaces

 Core
 
 Base
 

Macros

#define TYPESYSTEM_HEADER()
 define for subclassing Base::BaseClass More...
 
#define TYPESYSTEM_SOURCE_P(_class_)
 define to implement a subclass of Base::BaseClass More...
 
#define TYPESYSTEM_SOURCE_ABSTRACT_P(_class_)
 define to implement a subclass of Base::BaseClass More...
 
#define TYPESYSTEM_SOURCE(_class_, _parentclass_)
 define to implement a subclass of Base::BaseClass More...
 
#define TYPESYSTEM_SOURCE_ABSTRACT(_class_, _parentclass_)
 define to implement a subclass of Base::BaseClass More...
 

Functions

template<typename T >
T * Base::cast2 (Base::BaseClass *b)
 
template<typename T >
const T * Base::ccast2 (const Base::BaseClass *b)
 

Macro Definition Documentation

◆ TYPESYSTEM_HEADER

#define TYPESYSTEM_HEADER ( )
Value:
public: \
friend class Core::CoreDocument; \
static Base::Type getClassTypeId(void); \
virtual Base::Type getTypeId(void) const; \
static void setIfcNameAndID(const std::string& s, int id); \
static void init(void); \
static void* create(void); \
\
private: \
static Base::Type classTypeId; \
static std::string ifcEntityName; \
static int ifcEntityID;
static void setIfcNameAndID(const std::string &n, int id)
static void init(void)
static void * create(void)
Definition: Base.h:100
virtual Type getTypeId(void) const
Definition: Type.h:52
Definition: CoreDocument.h:210
static Type getClassTypeId(void)

define for subclassing Base::BaseClass

◆ TYPESYSTEM_SOURCE

#define TYPESYSTEM_SOURCE (   _class_,
  _parentclass_ 
)
Value:
void _class_::init(void) \
{ \
initSubclass(::_class_::classTypeId, #_class_, #_parentclass_, &(::_class_::create)); \
initIfcTypes(::_class_::ifcEntityName, ::_class_::classTypeId, ::_class_::ifcEntityID); \
}
#define TYPESYSTEM_SOURCE_P(_class_)
define to implement a subclass of Base::BaseClass
Definition: Base.h:36

define to implement a subclass of Base::BaseClass

◆ TYPESYSTEM_SOURCE_ABSTRACT

#define TYPESYSTEM_SOURCE_ABSTRACT (   _class_,
  _parentclass_ 
)
Value:
void _class_::init(void) \
{ \
initSubclass(::_class_::classTypeId, #_class_, #_parentclass_, &(::_class_::create)); \
initIfcTypes(::_class_::ifcEntityName, ::_class_::classTypeId, ::_class_::ifcEntityID); \
}
#define TYPESYSTEM_SOURCE_ABSTRACT_P(_class_)
define to implement a subclass of Base::BaseClass
Definition: Base.h:50

define to implement a subclass of Base::BaseClass

◆ TYPESYSTEM_SOURCE_ABSTRACT_P

#define TYPESYSTEM_SOURCE_ABSTRACT_P (   _class_)
Value:
Base::Type _class_::getClassTypeId(void) { return ::_class_::classTypeId; } \
Base::Type _class_::getTypeId(void) const { return ::_class_::classTypeId; } \
void _class_::setIfcNameAndID(const std::string& s, int id) \
{ \
ifcEntityName = s; \
ifcEntityID = id; \
} \
Base::Type _class_::classTypeId = Base::Type::badType(); \
std::string _class_::ifcEntityName; \
int _class_::ifcEntityID; \
void* _class_::create(void) { return 0; }
Definition: Type.h:52
static const Type badType(void)
Definition: Type.h:99

define to implement a subclass of Base::BaseClass

◆ TYPESYSTEM_SOURCE_P

#define TYPESYSTEM_SOURCE_P (   _class_)
Value:
Base::Type _class_::getClassTypeId(void) { return ::_class_::classTypeId; } \
Base::Type _class_::getTypeId(void) const { return ::_class_::classTypeId; } \
void _class_::setIfcNameAndID(const std::string& s, int id) \
{ \
ifcEntityName = s; \
ifcEntityID = id; \
} \
Base::Type _class_::classTypeId = Base::Type::badType(); \
std::string _class_::ifcEntityName; \
int _class_::ifcEntityID; \
void* _class_::create(void) { return new ::_class_(); }
Definition: Type.h:52
static const Type badType(void)
Definition: Type.h:99

define to implement a subclass of Base::BaseClass