PixelLightAPI
.
|
#include "PLCore/Base/ClassReal.h"
#include "PLCore/Base/ClassManager.h"
#include "PLCore/Base/Var/Var.h"
#include "PLCore/Base/Var/Attribute.h"
#include "PLCore/Base/Func/Method.h"
#include "PLCore/Base/Func/Constructor.h"
#include "PLCore/Base/Event/Signal.h"
#include "PLCore/Base/Event/Slot.h"
#include "PLCore/Base/Tools/TypeTraits.h"
Go to the source code of this file.
Classes | |
class | PLCore::ModuleID< T > |
Class to give each module a unique ID. More... | |
Namespaces | |
namespace | PLCore |
Defines | |
#define | PLCORE_IS_DEBUGMODE false |
Debug mode. | |
#define | __pl_enum(ENUM) |
Create class for an enumeration type. | |
#define | __pl_enum_direct(ENUM, TYPE) |
Create class for an direct enumeration type (not using enum{}, e.g. for float 'enums') | |
#define | __pl_enum_base(ENUM) |
Declare base enumeration type (add all values of an existing enumeration type) | |
#define | __pl_enum_value(VALUE, DESCRIPTION) |
Add enumeration value. | |
#define | __pl_enum_value_direct(NAME, VALUE, DESCRIPTION) |
Add enumeration value by directly specifying the value. | |
#define | __pl_enum_end |
End enumeration class. | |
#define | __pl_class(CLASS, NAMESPACE, BASECLASS, BASECLASSNAME, DESCRIPTION) |
Create class. | |
#define | __pl_rtti_export(EXPORT) |
Mark export flag. | |
#define | __pl_guard(CLASS) |
Create guard for class. | |
#define | __pl_getclass() |
Create virtual function GetClass() | |
#define | __pl_class_impl(CLASS) |
Create class implementation (static variables) | |
#define | __pl_prop_meth |
Create class for properties. | |
#define | __pl_prop_prop(NAME, VALUE) static_cast<_Class*>(pClass)->AddProperty(NAME, VALUE); \ |
Add property. | |
#define | __pl_prop_class_end } \ |
End class for properties. | |
#define | __pl_attr_stor(NAME, TYPE, STORAGE) |
Create get/set storage class for an attribute. | |
#define | __pl_attr_desc(NAME, TYPE, DEFAULT, DESCRIPTION, ANNOTATION) |
Create descriptor class for an attribute. | |
#define | __pl_attr_attr(NAME, TYPE, DEFAULT, ACCESS, STORAGE) |
Create class for an attribute. | |
#define | __pl_attr_decl(NAME, TYPE) NAME##_Attr NAME; \ |
Create attribute variable. | |
#define | __pl_method_desc(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) |
Create descriptor class for a method. | |
#define | __pl_method_meth(NAME) |
Create class for a method. | |
#define | __pl_signal_desc(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) |
Create descriptor class for a signal. | |
#define | __pl_signal_evnt(NAME) |
Create class for a signal. | |
#define | __pl_signal_decl(NAME) NAME##_Signal NAME; \ |
Create signal variable. | |
#define | __pl_slot_desc(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) |
Create descriptor class for a slot. | |
#define | __pl_slot_evth(NAME) |
Create class for a slot. | |
#define | __pl_slot_decl(NAME) NAME##_Slot Slot##NAME; \ |
Create slot variable. | |
#define | __pl_constructor_desc(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) |
Create descriptor class for a constructor. | |
#define | __pl_constructor_cons(NAME) |
Create class for an event handler. | |
#define | pl_current_module_id() ( PLCore::ModuleID<int>::GetModuleID() ) |
Get current module ID. | |
#define | pl_enum(ENUM) __pl_enum(ENUM) \ |
Declare enumeration type. | |
#define | pl_enum_direct(ENUM, TYPE) __pl_enum_direct(ENUM, TYPE) \ |
Declare direct enumeration type (not using enum{}, e.g. for float 'enums') | |
#define | pl_enum_base(ENUM) __pl_enum_base(ENUM) \ |
Declare base enumeration type (add all values of an existing enumeration type) | |
#define | pl_enum_value(VALUE, DESCRIPTION) __pl_enum_value(VALUE, DESCRIPTION) \ |
Declare enumeration value. | |
#define | pl_enum_value_direct(NAME, VALUE, DESCRIPTION) __pl_enum_value_direct(NAME, VALUE, DESCRIPTION) \ |
Add enumeration value by directly specifying the value. | |
#define | pl_enum_end __pl_enum_end \ |
End enumeration. | |
#define | pl_class(EXPORT, CLASS, NAMESPACE, BASECLASS, DESCRIPTION) |
Declare class. | |
#define | pl_rtti_export 1 |
Export RTTI class (use in macro pl_class) | |
#define | pl_rtti_import 0 |
Export RTTI class (use in macro pl_class) | |
#define | pl_class_internal(EXPORT, CLASS, NAMESPACE, BASECLASS, DESCRIPTION) |
Declare class - internal (only for PLCore::Object) | |
#define | pl_properties __pl_prop_meth \ |
Begin class properties. | |
#define | pl_property(NAME, VALUE) __pl_prop_prop(NAME, VALUE) \ |
Declare class property. | |
#define | pl_properties_end __pl_prop_class_end \ |
End class properties. | |
#define | pl_attribute(NAME, TYPE, DEFAULT, ACCESS, STORAGE, DESCRIPTION, ANNOTATION) |
Declare attribute. | |
#define | pl_enum_type(ENUM) PLCore::EnumType< ENUM##__plcore_enum__ > |
Declare an enum type for an attribute. | |
#define | pl_flag_type(ENUM) PLCore::FlagType< ENUM##__plcore_enum__ > |
Declare a flags type for an attribute. | |
#define | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) |
Declare method. | |
#define | pl_method_15(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_14(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_13(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_12(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_11(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_10(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_9(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_8(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_7(NAME, RET, T0, T1, T2, T3, T4, T5, T6, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_6(NAME, RET, T0, T1, T2, T3, T4, T5, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_5(NAME, RET, T0, T1, T2, T3, T4, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, T4, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_4(NAME, RET, T0, T1, T2, T3, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, T3, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_3(NAME, RET, T0, T1, T2, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, T2, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_2(NAME, RET, T0, T1, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, T1, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_1(NAME, RET, T0, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, T0, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_method_0(NAME, RET, DESCRIPTION, ANNOTATION) pl_method_16(NAME, RET, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) |
Declare signal. | |
#define | pl_signal_15(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_14(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_13(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_12(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_11(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_10(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_9(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_8(NAME, T0, T1, T2, T3, T4, T5, T6, T7, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_7(NAME, T0, T1, T2, T3, T4, T5, T6, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_6(NAME, T0, T1, T2, T3, T4, T5, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_5(NAME, T0, T1, T2, T3, T4, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, T4, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_4(NAME, T0, T1, T2, T3, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, T3, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_3(NAME, T0, T1, T2, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, T2, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_2(NAME, T0, T1, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, T1, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_1(NAME, T0, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, T0, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_signal_0(NAME, DESCRIPTION, ANNOTATION) pl_signal_16(NAME, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) |
Declare slot. | |
#define | pl_slot_15(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_14(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_13(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_12(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_11(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_10(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_9(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_8(NAME, T0, T1, T2, T3, T4, T5, T6, T7, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_7(NAME, T0, T1, T2, T3, T4, T5, T6, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_6(NAME, T0, T1, T2, T3, T4, T5, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_5(NAME, T0, T1, T2, T3, T4, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, T4, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_4(NAME, T0, T1, T2, T3, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, T3, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_3(NAME, T0, T1, T2, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, T2, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_2(NAME, T0, T1, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, T1, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_1(NAME, T0, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, T0, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_slot_0(NAME, DESCRIPTION, ANNOTATION) pl_slot_16(NAME, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) |
Declare constructor. | |
#define | pl_constructor_15(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_14(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_13(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_12(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_11(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_10(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_9(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_8(NAME, T0, T1, T2, T3, T4, T5, T6, T7, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_7(NAME, T0, T1, T2, T3, T4, T5, T6, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_6(NAME, T0, T1, T2, T3, T4, T5, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_5(NAME, T0, T1, T2, T3, T4, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, T4, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_4(NAME, T0, T1, T2, T3, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, T3, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_3(NAME, T0, T1, T2, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, T2, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_2(NAME, T0, T1, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, T1, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_1(NAME, T0, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, T0, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_constructor_0(NAME, DESCRIPTION, ANNOTATION) pl_constructor_16(NAME, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define | pl_ret_type(RET) RET |
Declare return type for a method. | |
#define | pl_class_end |
End class declaration. | |
#define | pl_implement_class(CLASS) __pl_class_impl(CLASS) \ |
Define class. |
#define PLCORE_IS_DEBUGMODE false |
Debug mode.
#define __pl_enum | ( | ENUM | ) |
class ENUM##__plcore_enum__ { \ public: \ typedef int _BaseType; \ typedef ENUM _Type; \ \ static bool GetEnumValue(int nIndex, ENUM &nValue, PLCore::String &sName, PLCore::String &sDescription) { \ int nCount = 0; \
Create class for an enumeration type.
[in] | ENUM | Enumeration name |
#define __pl_enum_direct | ( | ENUM, | |
TYPE | |||
) |
class ENUM##__plcore_enum__ { \ public: \ typedef TYPE _BaseType; \ typedef TYPE _Type; \ \ static bool GetEnumValue(int nIndex, TYPE &nValue, PLCore::String &sName, PLCore::String &sDescription) { \ int nCount = 0; \
Create class for an direct enumeration type (not using enum{}, e.g. for float 'enums')
[in] | ENUM | Enumeration name |
[in] | TYPE | Enumeration type |
#define __pl_enum_base | ( | ENUM | ) |
nCount = PLCore::EnumType<ENUM##__plcore_enum__>::GetNumOfEnumValues(); \ if (nIndex >= 0 && nIndex < nCount) { \ return ENUM##__plcore_enum__::GetEnumValue(nIndex, reinterpret_cast<ENUM&>(nValue), sName, sDescription); \ } else if (nIndex == -1) { \ if (ENUM##__plcore_enum__::GetEnumValue(-1, reinterpret_cast<ENUM&>(nValue), sName, sDescription)) \ return true; \ } \
Declare base enumeration type (add all values of an existing enumeration type)
[in] | ENUM | Enumeration name of base data type |
#define __pl_enum_value | ( | VALUE, | |
DESCRIPTION | |||
) |
if (nIndex == nCount) { nValue = VALUE; sName = #VALUE; return true; } \ else if (nIndex == -1 && !sName.GetLength() && nValue == VALUE) { sName = #VALUE; return true; } \ else if (nIndex == -1 && sName == #VALUE) { nValue = VALUE; sDescription = DESCRIPTION; return true; } \ nCount++; \
Add enumeration value.
[in] | VALUE | Enumeration value |
[in] | DESCRIPTION | Enumeration description |
#define __pl_enum_value_direct | ( | NAME, | |
VALUE, | |||
DESCRIPTION | |||
) |
if (nIndex == nCount) { nValue = VALUE; sName = #NAME; return true; } \ else if (nIndex == -1 && !sName.GetLength() && nValue == VALUE) { sName = #NAME; return true; } \ else if (nIndex == -1 && sName == #NAME) { nValue = VALUE; sDescription = DESCRIPTION; return true; } \ nCount++; \
Add enumeration value by directly specifying the value.
[in] | NAME | Enumeration name |
[in] | VALUE | Enumeration value |
[in] | DESCRIPTION | Enumeration description |
#define __pl_enum_end |
return false; \ } \ }; \
End enumeration class.
#define __pl_class | ( | CLASS, | |
NAMESPACE, | |||
BASECLASS, | |||
BASECLASSNAME, | |||
DESCRIPTION | |||
) |
Create class.
[in] | CLASS | Class name (without namespace) |
[in] | NAMESPACE | Namespace |
[in] | BASECLASS | Base class name (with namespace) |
[in] | DESCRIPTION | Class description |
#define __pl_rtti_export | ( | EXPORT | ) |
enum { \
_RttiExport = EXPORT \
}; \
\
Mark export flag.
[in] | EXPORT | Export definition (must be defined as either 1 or 0) |
#define __pl_guard | ( | CLASS | ) |
/* Creation and destruction guard */ \ class _Guard { \ public: \ /* Constructor */ \ _Guard() { \ _Class::GetSingleton(); \ } \ \ /* Destructor */ \ ~_Guard() { \ /* Make sure that class instance is removed on shutdown */ \ _Class::GetSingleton(false); \ } \ }; \
Create guard for class.
[in] | CLASS | Class name (without namespace) |
#define __pl_getclass | ( | ) |
/* Public virtual PLCore::Object function */ \ virtual PLCore::Class *GetClass() const override \ { \ return _Class::GetSingleton()->GetClass(); \ } \
Create virtual function GetClass()
#define __pl_class_impl | ( | CLASS | ) |
/* Guard */ \
CLASS::_Guard cGuard_##CLASS; \
Create class implementation (static variables)
[in] | CLASS | Class name (without namespace) |
#define __pl_prop_meth |
/* Class properties */ \ static inline void _RegisterProperties(PLCore::ClassReal *pClass) { \
Create class for properties.
#define __pl_prop_prop | ( | NAME, | |
VALUE | |||
) | static_cast<_Class*>(pClass)->AddProperty(NAME, VALUE); \ |
Add property.
[in] | NAME | Property name |
[in] | VALUE | Property value |
#define __pl_prop_class_end } \ |
End class for properties.
#define __pl_attr_stor | ( | NAME, | |
TYPE, | |||
STORAGE | |||
) |
template <typename CLASS> class NAME##_GetSet { \ public: \ typedef PLCore::StorageGetSet StorageType; \ typedef PLCore::StorageGetSet BaseStorageType; \ static inline PLCore::Type<TYPE>::_Type Get(PLCore::Object *pObject) { \ return static_cast<CLASS*>(pObject)->Get##NAME(); \ } \ static inline void Set(PLCore::Object *pObject, const PLCore::Type<TYPE>::_Type &Value) { \ static_cast<CLASS*>(pObject)->Set##NAME(Value); \ } \ }; \ \ template <typename BASE> class NAME##_ModAttr { \ public: \ typedef PLCore::StorageModifyAttr StorageType; \ typedef typename BASE::NAME##_Storage::BaseStorageType BaseStorageType; \ static inline PLCore::Type<TYPE>::_Type Get(PLCore::Object *pObject) { \ return static_cast<BASE*>(pObject)->NAME.Get(); \ } \ static inline void Set(PLCore::Object *pObject, const PLCore::Type<TYPE>::_Type &Value) { \ static_cast<BASE*>(pObject)->NAME.Set(Value); \ } \ }; \
Create get/set storage class for an attribute.
[in] | NAME | Attribute name |
[in] | TYPE | Attribute type |
[in] | STORAGE | Attribute storage type (DirectValue/GetSet/ModifyAttr) |
#define __pl_attr_desc | ( | NAME, | |
TYPE, | |||
DEFAULT, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
class NAME##_Desc : public PLCore::VarDesc { \ public: \ NAME##_Desc() : PLCore::VarDesc(PLCore::Type<TYPE>::TypeID, PLCore::Type<TYPE>::GetTypeName(), #NAME, DESCRIPTION, ANNOTATION) { \ bool bRegister = static_cast<bool>(_Self::_RttiExport); \ if (bRegister) \ Register(_Class::GetSingleton()); \ } \ ~NAME##_Desc() { \ } \ private: \ virtual PLCore::String GetDefault() const override { \ return PLCore::Type<TYPE>::ConvertToString(DEFAULT); \ } \ virtual PLCore::DynVar *GetAttribute(const Object &cObject) const override { \ return &reinterpret_cast<_Self&>(const_cast<Object&>(cObject)).NAME; \ } \ }; \
Create descriptor class for an attribute.
[in] | NAME | Attribute name |
[in] | TYPE | Attribute type |
[in] | DEFAULT | Attribute default value |
[in] | DESCRIPTION | Attribute description |
[in] | ANNOTATION | Attribute annotation |
#define __pl_attr_attr | ( | NAME, | |
TYPE, | |||
DEFAULT, | |||
ACCESS, | |||
STORAGE | |||
) |
typedef PLCore::SpecializeIfEqual<PLCore::Storage##STORAGE, PLCore::StorageGetSet, NAME##_GetSet, _Self>::Type NAME##_ClassGetSet; \ typedef PLCore::SpecializeIfEqual<PLCore::Storage##STORAGE, PLCore::StorageModifyAttr, NAME##_ModAttr, _Base>::Type NAME##_ClassModAttr; \ typedef PLCore::StorageChooser<PLCore::Storage##STORAGE, NAME##_ClassGetSet, NAME##_ClassModAttr>::Storage NAME##_Storage; \ \ class NAME##_Attr : public PLCore::Attribute<TYPE, PLCore::Access##ACCESS, NAME##_Storage, NAME##_Desc> { \ public: \ typedef PLCore::Type< TYPE >::_Type _Type; \ NAME##_Attr(_Self *pObject) : PLCore::Attribute<TYPE, PLCore::Access##ACCESS, NAME##_Storage, NAME##_Desc>(DEFAULT, pObject) { \ } \ \ NAME##_Attr &operator =(const _Type &Value) { \ return static_cast<NAME##_Attr&>(PLCore::Attribute<TYPE, PLCore::Access##ACCESS, NAME##_Storage, NAME##_Desc>::operator =(Value)); \ } \ }; \
Create class for an attribute.
[in] | NAME | Attribute name |
[in] | TYPE | Attribute type |
[in] | DEFAULT | Attribute default value |
[in] | ACCESS | Attribute access type (ReadWrite/ReadOnly) |
[in] | STORAGE | Attribute storage type (DirectValue/GetSet/ModifyAttr) |
#define __pl_attr_decl | ( | NAME, | |
TYPE | |||
) | NAME##_Attr NAME; \ |
Create attribute variable.
[in] | NAME | Attribute name |
[in] | TYPE | Attribute type |
#define __pl_method_desc | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
T15, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
class NAME##_Desc : public PLCore::FuncDesc { \ public: \ typedef _Self ClassType; \ typedef PLCore::Functor<RET,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> FuncType; \ typedef PLCore::Signature<RET,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> SigType; \ typedef PLCore::ClassTypelist< _Self, PLCore::Typelist<RET,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> >::TypeMethodSignature MethType; \ public: \ NAME##_Desc() : PLCore::FuncDesc(SigType::GetSignatureID(), #NAME, #DESCRIPTION, #ANNOTATION) { \ bool bRegister = static_cast<bool>(_Self::_RttiExport); \ if (bRegister) \ Register(_Class::GetSingleton()); \ } \ ~NAME##_Desc() { \ } \ virtual PLCore::DynFuncPtr GetMethod(Object &cObject) const override { \ return new NAME##_Method(reinterpret_cast<_Self&>(cObject)); \ } \ private: \ FuncType m_cFunctor; \ }; \
Create descriptor class for a method.
[in] | NAME | Method name |
[in] | RET | Return type |
[in] | T0 | - T15 Parameter types |
[in] | DESCRIPTION | Method description |
[in] | ANNOTATION | Method annotation |
#define __pl_method_meth | ( | NAME | ) |
class NAME##_Method : public PLCore::Method<NAME##_Desc> { \ public: \ /* Cast away the const within the method pointer using a good old C-style cast to be as flexible as possible in here, if this is not done, only non-const methods can be exposed to the RTTI which isn't that comfortable */ \ NAME##_Method() : PLCore::Method<NAME##_Desc>((NAME##_Desc::MethType::MemFuncType)(&_Self::NAME), nullptr) { \ /* There are no automatic RTTI class method instances per RTTI class instance because there's no need for it and this safes RTTI class instance memory */ \ } \ /* Cast away the const within the method pointer using a good old C-style cast to be as flexible as possible in here, if this is not done, only non-const methods can be exposed to the RTTI which isn't that comfortable */ \ NAME##_Method(_Self &cObject) : PLCore::Method<NAME##_Desc>((NAME##_Desc::MethType::MemFuncType)(&_Self::NAME), &cObject) { \ } \ }; \
Create class for a method.
[in] | NAME | Method name |
#define __pl_signal_desc | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
T15, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
class NAME##_Desc : public PLCore::EventDesc { \ public: \ typedef _Self ClassType; \ typedef PLCore::Event<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> EventType; \ typedef PLCore::Signature<void,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> SigType; \ public: \ NAME##_Desc() : PLCore::EventDesc(SigType::GetSignatureID(), #NAME, #DESCRIPTION, #ANNOTATION) { \ bool bRegister = static_cast<bool>(_Self::_RttiExport); \ if (bRegister) \ Register(_Class::GetSingleton()); \ } \ ~NAME##_Desc() { \ } \ private: \ virtual PLCore::DynEvent *GetSignal(const Object &cObject) const override { \ return &reinterpret_cast<_Self&>(const_cast<Object&>(cObject)).NAME; \ } \ }; \
Create descriptor class for a signal.
[in] | NAME | Signal name |
[in] | T0 | - T15 Parameter types |
[in] | DESCRIPTION | Signal description |
[in] | ANNOTATION | Signal annotation |
#define __pl_signal_evnt | ( | NAME | ) |
class NAME##_Signal : public PLCore::Signal<NAME##_Desc> { \ public: \ NAME##_Signal() : PLCore::Signal<NAME##_Desc>() { \ } \ }; \
Create class for a signal.
[in] | NAME | Signal name |
#define __pl_signal_decl | ( | NAME | ) | NAME##_Signal NAME; \ |
Create signal variable.
[in] | NAME | Signal name |
#define __pl_slot_desc | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
T15, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
class NAME##_Desc : public PLCore::EventHandlerDesc { \ public: \ typedef _Self ClassType; \ typedef PLCore::EventHandler<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> EventHandlerType; \ typedef PLCore::Signature<void,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> SigType; \ typedef PLCore::ClassTypelist< _Self, PLCore::Typelist<void,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15> >::TypeMethodSignature MethType; \ public: \ NAME##_Desc() : PLCore::EventHandlerDesc(SigType::GetSignatureID(), #NAME, #DESCRIPTION, #ANNOTATION) { \ bool bRegister = static_cast<bool>(_Self::_RttiExport); \ if (bRegister) \ Register(_Class::GetSingleton()); \ } \ ~NAME##_Desc() { \ } \ private: \ virtual PLCore::DynEventHandler *GetSlot(const Object &cObject) const override { \ return &reinterpret_cast<_Self&>(const_cast<Object&>(cObject)).Slot##NAME; \ } \ }; \
Create descriptor class for a slot.
[in] | NAME | Event handler name |
[in] | T0 | - T15 Parameter types |
[in] | DESCRIPTION | Event handler description |
[in] | ANNOTATION | Event handler annotation |
#define __pl_slot_evth | ( | NAME | ) |
class NAME##_Slot : public PLCore::Slot<NAME##_Desc> { \ public: \ NAME##_Slot(_Self *pObject) : PLCore::Slot<NAME##_Desc>(&_Self::NAME, pObject) { \ } \ }; \
Create class for a slot.
[in] | NAME | Slot name |
#define __pl_slot_decl | ( | NAME | ) | NAME##_Slot Slot##NAME; \ |
Create slot variable.
[in] | NAME | Event handler name |
#define __pl_constructor_desc | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
T15, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
Create descriptor class for a constructor.
[in] | NAME | Constructor name |
[in] | T0 | - T15 Parameter types |
[in] | DESCRIPTION | Constructor description |
[in] | ANNOTATION | Constructor annotation |
#define __pl_constructor_cons | ( | NAME | ) |
class NAME##_Constructor : public PLCore::Constructor<NAME##_Desc> { \ public: \ NAME##_Constructor() { \ } \ }; \
Create class for an event handler.
[in] | NAME | Event handler name |
#define pl_current_module_id | ( | ) | ( PLCore::ModuleID<int>::GetModuleID() ) |
Get current module ID.
Declare enumeration type.
[in] | ENUM | Enumeration name |
#define pl_enum_direct | ( | ENUM, | |
TYPE | |||
) | __pl_enum_direct(ENUM, TYPE) \ |
Declare direct enumeration type (not using enum{}, e.g. for float 'enums')
[in] | ENUM | Enumeration name |
[in] | TYPE | Enumeration type |
#define pl_enum_base | ( | ENUM | ) | __pl_enum_base(ENUM) \ |
Declare base enumeration type (add all values of an existing enumeration type)
[in] | ENUM | Enumeration name of base data type |
#define pl_enum_value | ( | VALUE, | |
DESCRIPTION | |||
) | __pl_enum_value(VALUE, DESCRIPTION) \ |
Declare enumeration value.
[in] | VALUE | Enumeration value |
[in] | DESCRIPTION | Enumeration description |
#define pl_enum_value_direct | ( | NAME, | |
VALUE, | |||
DESCRIPTION | |||
) | __pl_enum_value_direct(NAME, VALUE, DESCRIPTION) \ |
Add enumeration value by directly specifying the value.
[in] | NAME | Enumeration name |
[in] | VALUE | Enumeration value |
[in] | DESCRIPTION | Enumeration description |
#define pl_enum_end __pl_enum_end \ |
End enumeration.
#define pl_class | ( | EXPORT, | |
CLASS, | |||
NAMESPACE, | |||
BASECLASS, | |||
DESCRIPTION | |||
) |
__pl_class(CLASS, NAMESPACE, BASECLASS, #BASECLASS, DESCRIPTION) \ __pl_guard(CLASS) \ __pl_getclass() \ __pl_rtti_export(EXPORT) \
Declare class.
[in] | EXPORT | Export definition (must be defined as either 1 or 0) |
[in] | CLASS | Class name (without namespace) |
[in] | NAMESPACE | Namespace |
[in] | BASECLASS | Base class name (with namespace) |
[in] | DESCRIPTION | Class description |
#define pl_rtti_export 1 |
Export RTTI class (use in macro pl_class)
#define pl_rtti_import 0 |
Export RTTI class (use in macro pl_class)
#define pl_class_internal | ( | EXPORT, | |
CLASS, | |||
NAMESPACE, | |||
BASECLASS, | |||
DESCRIPTION | |||
) |
__pl_class(CLASS, NAMESPACE, PLCore::ObjectBase, #BASECLASS, DESCRIPTION) \ __pl_guard(CLASS) \ __pl_getclass() \ __pl_rtti_export(EXPORT) \
Declare class - internal (only for PLCore::Object)
[in] | EXPORT | Export definition (must be defined as either 1 or 0) |
[in] | CLASS | Class name (without namespace) |
[in] | NAMESPACE | Namespace |
[in] | BASECLASS | Base class name (with namespace) |
[in] | DESCRIPTION | Class description |
#define pl_properties __pl_prop_meth \ |
Begin class properties.
#define pl_property | ( | NAME, | |
VALUE | |||
) | __pl_prop_prop(NAME, VALUE) \ |
Declare class property.
[in] | NAME | Property name |
[in] | VALUE | Property value |
#define pl_properties_end __pl_prop_class_end \ |
End class properties.
#define pl_attribute | ( | NAME, | |
TYPE, | |||
DEFAULT, | |||
ACCESS, | |||
STORAGE, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
__pl_attr_stor(NAME, TYPE, STORAGE) \ __pl_attr_desc(NAME, TYPE, DEFAULT, DESCRIPTION, ANNOTATION) \ __pl_attr_attr(NAME, TYPE, DEFAULT, ACCESS, STORAGE) \ __pl_attr_decl(NAME, TYPE) \
Declare attribute.
[in] | NAME | Attribute name |
[in] | TYPE | Attribute type |
[in] | DEFAULT | Attribute default value |
[in] | ACCESS | Attribute access type (ReadWrite/ReadOnly) |
[in] | STORAGE | Attribute storage type (DirectValue/GetSet/ModifyAttr) |
[in] | DESCRIPTION | Attribute description |
[in] | ANNOTATION | Attribute annotation |
#define pl_enum_type | ( | ENUM | ) | PLCore::EnumType< ENUM##__plcore_enum__ > |
Declare an enum type for an attribute.
[in] | ENUM | Name of enum type |
#define pl_flag_type | ( | ENUM | ) | PLCore::FlagType< ENUM##__plcore_enum__ > |
Declare a flags type for an attribute.
[in] | ENUM | Name of enum type |
#define pl_method_16 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
T15, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
private: /* RTTI class methods are private to avoid misuse */ \ __pl_method_desc(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) \ __pl_method_meth(NAME) \ public: \
Declare method.
[in] | NAME | Method name |
[in] | RET | Return type |
[in] | T0 | - T15 Parameter types |
[in] | DESCRIPTION | Method description |
[in] | ANNOTATION | Method annotation |
#define pl_method_15 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_14 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_13 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_12 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_11 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_10 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_9 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, T8, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_8 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, T7, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_7 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, T6, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_6 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, T5, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_5 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, T4, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_4 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
T3, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, T3, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_3 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
T2, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, T2, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_2 | ( | NAME, | |
RET, | |||
T0, | |||
T1, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, T1, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_1 | ( | NAME, | |
RET, | |||
T0, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, T0, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_method_0 | ( | NAME, | |
RET, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_method_16(NAME, RET, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_16 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
T15, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
__pl_signal_desc(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) \ __pl_signal_evnt(NAME) \ __pl_signal_decl(NAME) \
Declare signal.
[in] | NAME | Event name |
[in] | T0 | - T15 Parameter types |
[in] | DESCRIPTION | Event description |
[in] | ANNOTATION | Event annotation |
#define pl_signal_15 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_14 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_13 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_12 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_11 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_10 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_9 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_8 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_7 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, T6, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_6 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, T5, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_5 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, T4, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_4 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, T3, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_3 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, T2, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_2 | ( | NAME, | |
T0, | |||
T1, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, T1, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_1 | ( | NAME, | |
T0, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, T0, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_signal_0 | ( | NAME, | |
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_signal_16(NAME, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_16 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
T15, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
__pl_slot_desc(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) \ __pl_slot_evth(NAME) \ __pl_slot_decl(NAME) \
Declare slot.
[in] | NAME | Event handler name |
[in] | T0 | - T15 Parameter types |
[in] | DESCRIPTION | Event handler description |
[in] | ANNOTATION | Event handler annotation |
#define pl_slot_15 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_14 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_13 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_12 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_11 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_10 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_9 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_8 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_7 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, T6, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_6 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, T5, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_5 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, T4, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_4 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, T3, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_3 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, T2, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_2 | ( | NAME, | |
T0, | |||
T1, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, T1, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_1 | ( | NAME, | |
T0, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, T0, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_slot_0 | ( | NAME, | |
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_slot_16(NAME, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_16 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
T15, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) |
__pl_constructor_desc(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, DESCRIPTION, ANNOTATION) \ __pl_constructor_cons(NAME) \
Declare constructor.
[in] | NAME | Constructor name |
[in] | T0 | - T15 Parameter types |
[in] | DESCRIPTION | Constructor description |
[in] | ANNOTATION | Constructor annotation |
#define pl_constructor_15 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
T14, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_14 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
T13, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_13 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
T12, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_12 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
T11, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_11 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
T10, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_10 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
T9, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_9 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
T8, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, T8, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_8 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
T7, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, T7, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_7 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
T6, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, T6, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_6 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
T5, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, T5, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_5 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
T4, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, T4, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_4 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
T3, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, T3, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_3 | ( | NAME, | |
T0, | |||
T1, | |||
T2, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, T2, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_2 | ( | NAME, | |
T0, | |||
T1, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, T1, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_1 | ( | NAME, | |
T0, | |||
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, T0, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_constructor_0 | ( | NAME, | |
DESCRIPTION, | |||
ANNOTATION | |||
) | pl_constructor_16(NAME, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, PLCore::NullType, DESCRIPTION, ANNOTATION) |
#define pl_ret_type | ( | RET | ) | RET |
Declare return type for a method.
[in] | RET | Return type |
#define pl_class_end |
End class declaration.
#define pl_implement_class | ( | CLASS | ) | __pl_class_impl(CLASS) \ |
Define class.
[in] | CLASS | Class name (without namespace) |
|