Convenient macros to create setter and getter methods. More...
Defines | |
#define | DEFINE_VARIABLE(type, varName, methodName) DATA_MEMBER(type,varName,methodName) |
#define | DEFINE_POINTER(type, varName, methodName) POINTER_MEMBER(type,varName,methodName) |
#define | DEFINE_MEMBER(type, varName, methodName) CLASS_MEMBER(type,varName,methodName) |
#define | COMPARE_BY_MEMBER_METHODS(className, memberName) |
#define | COMPARE_BY_MEMORY_METHODS(className) |
#define | COMPARE_BY_COMPARE_METHOD(className, methodName) |
Methods for flags. | |
Macros to create setter and getter methods for flags. Usage example with DEFINE_STATE: class MyClass { public: MyClass () : flags (0) {} DEFINE_FLAG (flags, isFlagged, 1<<0) DEFINE_FLAG (flags, isMine, 1<<1) private: uint32 flags; }; void someFunction () { MyClass c; if (c.isFlagged ()) // check the flag c.isFlagged (false); // set the flag } | |
#define | DEFINE_STATE(flagVar, methodName, value) |
Create Methods with get and set prefix. | |
#define | DEFINE_FLAG(flagVar, methodName, value) |
Create Methods. | |
#define | DEFINE_FLAG_STATIC(flagVar, methodName, value) |
Create static Methods. | |
Methods for data members. | |
Macros to create setter and getter methods for class members. Examples: class MyClass { public: DATA_MEMBER (double, distance, Distance) STRING_MEMBER (Steinberg::String, name, Name) SHARED_MEMBER (FUnknown, userData, UserData) CLASS_MEMBER (Steinberg::Buffer, bufferData, BufferData) POINTER_MEMBER (Steinberg::FObject, refOnly, RefOnly) }; | |
#define | DATA_MEMBER(type, varName, methodName) |
Build-in member (pass by value). | |
#define | CLASS_MEMBER(type, varName, methodName) |
Build-in member (pass by value). | |
#define | POINTER_MEMBER(type, varName, methodName) |
Build-in member (pass by value). | |
#define | SHARED_MEMBER(type, varName, methodName) |
Build-in member (pass by value). | |
#define | OWNED_MEMBER(type, varName, methodName) |
Build-in member (pass by value). | |
#define | STRING_MEMBER(type, varName, methodName) |
Build-in member (pass by value). | |
#define | STRING8_MEMBER(type, varName, methodName) |
Build-in member (pass by value). | |
#define | STRING_MEMBER_STD(varName, methodName) STRING_MEMBER(Steinberg::String,varName,methodName) |
Build-in member (pass by value). | |
#define | STRING8_MEMBER_STD(varName, methodName) STRING8_MEMBER(Steinberg::String,varName,methodName) |
Build-in member (pass by value). |
Convenient macros to create setter and getter methods.
#define DEFINE_STATE | ( | flagVar, | |||
methodName, | |||||
value | ) |
void set##methodName (bool state) { if (state) flagVar |= (value); else flagVar &= ~(value); }\ bool get##methodName ()const { return (flagVar & (value)) != 0; }
Create Methods with get
and set
prefix.
#define DEFINE_FLAG | ( | flagVar, | |||
methodName, | |||||
value | ) |
void methodName (bool state) { if (state) flagVar |= (value); else flagVar &= ~(value); }\ bool methodName ()const { return (flagVar & (value)) != 0; }
Create Methods.
Same name for the getter and setter.
#define DEFINE_FLAG_STATIC | ( | flagVar, | |||
methodName, | |||||
value | ) |
static void methodName (bool __state) { if (__state) flagVar |= (value); else flagVar &= ~(value); }\ static bool methodName () { return (flagVar & (value)) != 0; }
Create static
Methods.
Same name for the getter and setter.
#define DATA_MEMBER | ( | type, | |||
varName, | |||||
methodName | ) |
public:void set##methodName (type v) { varName = v;}\ type get##methodName ()const { return varName; }\ protected: type varName; public:
Build-in member (pass by value).
#define CLASS_MEMBER | ( | type, | |||
varName, | |||||
methodName | ) |
public:void set##methodName (const type& v){ varName = v;}\ const type& get##methodName () const { return varName; }\ protected: type varName; public:
Build-in member (pass by value).
#define POINTER_MEMBER | ( | type, | |||
varName, | |||||
methodName | ) |
public:void set##methodName (type* ptr){ varName = ptr;}\ type* get##methodName ()const { return varName; }\ private: type* varName; public:
Build-in member (pass by value).
#define SHARED_MEMBER | ( | type, | |||
varName, | |||||
methodName | ) |
public:void set##methodName (type* v){ varName = v;}\ type* get##methodName ()const { return varName; }\ private: IPtr<type> varName; public:
Build-in member (pass by value).
#define OWNED_MEMBER | ( | type, | |||
varName, | |||||
methodName | ) |
public:void set##methodName (type* v){ varName = v;}\ type* get##methodName ()const { return varName; }\ private: OPtr<type> varName; public:
Build-in member (pass by value).
#define STRING_MEMBER | ( | type, | |||
varName, | |||||
methodName | ) |
public:void set##methodName (const tchar* v){ varName = v;}\ const type& get##methodName () const { return varName; }\ protected: type varName; public:
Build-in member (pass by value).
#define STRING8_MEMBER | ( | type, | |||
varName, | |||||
methodName | ) |
public:void set##methodName (const char8* v){ varName = v;}\ const type& get##methodName () const { return varName; }\ protected: type varName; public:
Build-in member (pass by value).
#define STRING_MEMBER_STD | ( | varName, | |||
methodName | ) | STRING_MEMBER(Steinberg::String,varName,methodName) |
Build-in member (pass by value).
#define STRING8_MEMBER_STD | ( | varName, | |||
methodName | ) | STRING8_MEMBER(Steinberg::String,varName,methodName) |
Build-in member (pass by value).
#define DEFINE_VARIABLE | ( | type, | |||
varName, | |||||
methodName | ) | DATA_MEMBER(type,varName,methodName) |
#define DEFINE_POINTER | ( | type, | |||
varName, | |||||
methodName | ) | POINTER_MEMBER(type,varName,methodName) |
#define DEFINE_MEMBER | ( | type, | |||
varName, | |||||
methodName | ) | CLASS_MEMBER(type,varName,methodName) |
#define COMPARE_BY_MEMBER_METHODS | ( | className, | |||
memberName | ) |
bool operator == (const className& other) const {return (memberName == other.memberName);} \ bool operator != (const className& other) const {return (memberName != other.memberName);} \ bool operator < (const className& other) const {return (memberName < other.memberName);} \ bool operator > (const className& other) const {return (memberName > other.memberName);} \ bool operator <= (const className& other) const {return (memberName <= other.memberName);} \ bool operator >= (const className& other) const {return (memberName >= other.memberName);}
#define COMPARE_BY_MEMORY_METHODS | ( | className | ) |
bool operator == (const className& other) const {return memcmp (this, &other, sizeof (className)) == 0;} \ bool operator != (const className& other) const {return memcmp (this, &other, sizeof (className)) != 0;} \ bool operator < (const className& other) const {return memcmp (this, &other, sizeof (className)) < 0;} \ bool operator > (const className& other) const {return memcmp (this, &other, sizeof (className)) > 0;} \ bool operator <= (const className& other) const {return memcmp (this, &other, sizeof (className)) <= 0;} \ bool operator >= (const className& other) const {return memcmp (this, &other, sizeof (className)) >= 0;}
#define COMPARE_BY_COMPARE_METHOD | ( | className, | |||
methodName | ) |
bool operator == (const className& other) const {return methodName (other) == 0;} \ bool operator != (const className& other) const {return methodName (other) != 0;} \ bool operator < (const className& other) const {return methodName (other) < 0;} \ bool operator > (const className& other) const {return methodName (other) > 0;} \ bool operator <= (const className& other) const {return methodName (other) <= 0; } \ bool operator >= (const className& other) const {return methodName (other) >= 0; }