Export class types definitions

File      : API\core\libs\libTypes.h
Namespace : core::libs
#define ZM_CLASS_TOOL           0x0001
#define ZM_CLASS_SERVICE        0x0002
#define ZM_CLASS_FILTER         0x0004
#define ZM_CLASS_SHARED         0x0008
#define ZM_CLASS_TEXTURELOADER  0x0010

Description

Export class type definitions. These types (can be specified as bitwise-or, but usually only one value is used to) specify export class type. Library enumerates export classes in tLibClassNode blocks where class creation function and class type is specified. Depending on class type, ZModeler can instantate class on startup (ZM_CLASS_TOOL), make it available for creation (ZM_CLASS_SERVICE, ZM_CLASS_SHARED) or provide class names enumeration (ZM_CLASS_FILTER).

Values are
ZM_CLASS_TOOL
Class instance is derived from core::tools::ITool and instantated on startup. Tool's core::layout::ILayout is obtained and tool is intergrated to ZModeler (commands bar, menu etc).
ZM_CLASS_SERVICE
Class instance is derived from services::IService. ZModeler will use this service when reqested or, if requried, one can instantate and initalize properly this service in library's startup routine.
ZM_CLASS_FILTER
Class instance is derived from core::io::IImportExportFilter and will be instatated/controlled by. services::IImportExportService. Libraries that export only filter-classes can support unload, So ZModeler will load them on demand and then unload.
ZM_CLASS_SHARED
Shared class can be derived from any interface you like and implement anything you need. This could be stream, user interface control and so on. ZModeler creates these classes on demand with IRepository::createSharedClass method.
ZM_CLASS_TEXTURELOADER
Texture loading class. Currently unused and reserved for future use.

Example

See an example in core::libs namespace overview.

See Also:
overview of namespace core::libs
core::libs::ILibrary interface