About
Dedicated resource IDs are used to the define the ID of a key used with a maxon::DataDictionary and the type of the associated stored value (see DataDictionary Manual).
IDs
Within a given namespace one can use the attribute MAXON_ATTRIBUTE to declare resource IDs. This attribute can only be used in a header file since the source processor will create additional code in the included hxx
files.
namespace CUSTOMSETTINGS
{
}
Definition: string.h:1287
#define MAXON_ATTRIBUTE(TYPE, NAME, RID,...)
Definition: fid.h:257
bool Bool
boolean type, possible values are only false/true, 8 bit
Definition: apibase.h:180
maxon::DataDictionary data;
data.Set(CUSTOMSETTINGS::SETTING_B,
"Hello World"_s)
iferr_return;
const maxon::Bool optionA = data.Get(CUSTOMSETTINGS::SETTING_A,
false);
const maxon::String optionB = data.Get(CUSTOMSETTINGS::SETTING_B,
""_s);
#define iferr_return
Definition: resultbase.h:1531
In contrast the attribute ::MAXON_ATTRIBUTE_LOCAL has to be used in a source code file to define IDs that are only relevant within the scope of that source code file.
namespace LOCALSETTINGS
{
}
{
}
return OK
Definition: apibase.h:2771
#define iferr_scope
Definition: resultbase.h:1396
Switch
To use IDs defined with MAXON_ATTRIBUTE in a switch-case
statement one must use these macros:
- ID_SWITCH: Allows to use an ID in a
switch
statement.
- ID_CASE: Allows to use an ID in a
case
statement.
{
{
case ID_CASE(CUSTOMSETTINGS::SETTING_A):
{
}
case ID_CASE(CUSTOMSETTINGS::SETTING_B):
{
}
}
}
#define ID_SWITCH(key)
Definition: fid.h:487
#define ID_CASE(key)
Definition: fid.h:501
#define DiagnosticOutput(formatString,...)
Definition: debugdiagnostics.h:170
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:69
Class IDs
Resource IDs can also be defined within a C++ class using the MAXON_ATTRIBUTE_CLASS attribute. This way the class name is used instead of a namespace to group the IDs.
{
public:
static MAXON_METHOD void SetData(maxon::DataDictionary & data);
};
#define MAXON_ATTRIBUTE_CLASS(TYPE, NAME, RID,...)
Definition: fid.h:286
Int64 Int
signed 32/64 bit int, size depends on the platform
Definition: apibase.h:187
#define MAXON_REFERENCE_CONST(FREEIMPL)
Definition: interfacebase.h:1214
#define MAXON_INTERFACE(Name, REFKIND, ID,...)
Definition: objectbase.h:1121
#define MAXON_INTERFACE_SINGLE_IMPLEMENTATION
Definition: objectbase.h:1069
#define MAXON_METHOD
Definition: interfacebase.h:1020
#define MAXON_INTERFACE_BASES(...)
Definition: objectbase.h:1049
maxon::DataDictionary data;
data.Set(SomeDataBaseInterface::VALUE_B,
"Hello World"_s)
iferr_return;
SomeDataBaseInterface::SetData(data);
SomeDataBaseInterface::PrintData();
Further Reading