A sequence of bytes (octets) is used to represent a type. For example the following byte sequence represents an array of 3 float32s:
// typedef float32 Point[3];
// FT_ARRAY, int32(3), FT_FLOAT32
0x50,0x03,0x00,0x00,0x00,0x0c
// typedef const float32 * const T[3];
// FT_ARRAY, int32(3), FT_CONST, FT_POINTER, FT_CONST, FT_FLOAT32
0x50,0x03,0x00,0x00,0x00,0x31,0x35,0x31,0x0c
// typedef const string8& T;
// FT_REFERENCE, FT_CONST, FT_STRING8
0x36,0x31,0x10
namespace ns
{
$typedef+ ceda::ptr<const ceda::IObject> T;
}
namespace ns
{
typedef ceda::ptr<ceda::IObject const> T;
inline ceda::ConstStringZ GetTypedefName_T()
{
return "ns::T";
}
}
namespace ns
{
void _Register_T()
{
static const ceda::octet_t T_type[] =
{
0x40,0x31,0x21,0x00,0x00
};
static ceda::ConstStringZ T_stringTable[] =
{
"ceda::IObject",
};
static const ceda::ReflectedTypedef T_typedef =
{
"ns::T",
T_type,
T_stringTable
};
cxVerify(ceda::RegisterReflectedTypedef(&T_typedef,ceda::Ceda_Core_Object_exObject_GetXTarget()) == ceda::NSE_OK);
}
} // ns