![]() |
|
This file defines some macros that are useful for declaring and using static TfTokens. More...
Go to the source code of this file.
Macros | |
#define | _TF_DECLARE_PUBLIC_TOKENS3(key, eiapi, seq) |
#define | _TF_DECLARE_PUBLIC_TOKENS2(key, seq) |
#define | _TF_DECLARE_PUBLIC_TOKENS(N) _TF_DECLARE_PUBLIC_TOKENS##N |
#define | _TF_DECLARE_PUBLIC_TOKENS_EVAL(N) _TF_DECLARE_PUBLIC_TOKENS(N) |
#define | _TF_DECLARE_PUBLIC_TOKENS_EXPAND(x) x |
#define | TF_DECLARE_PUBLIC_TOKENS(...) |
Macro to define public tokens. More... | |
#define | TF_DEFINE_PUBLIC_TOKENS(key, seq) |
Macro to define public tokens. More... | |
#define | TF_DEFINE_PRIVATE_TOKENS(key, seq) |
Macro to define private tokens. More... | |
#define | _TF_TOKENS_STRUCT_NAME_PRIVATE(key) BOOST_PP_CAT(key, _PrivateStaticTokenType) |
#define | _TF_TOKENS_STRUCT_NAME(key) BOOST_PP_CAT(key, _StaticTokenType) |
#define | _TF_TOKENS_DECLARE_MEMBER(r, data, elem) |
#define | _TF_TOKENS_DECLARE_MEMBERS(seq) |
#define | _TF_TOKENS_EXPAND_ARRAY_ELEMENTS(seq) |
#define | _TF_DECLARE_TOKENS3(key, seq, eiapi) |
#define | _TF_DECLARE_TOKENS2(key, seq) |
#define | _TF_TOKENS_DEFINE_MEMBER(r, data, i, elem) |
#define | _TF_TOKENS_INITIALIZE_MEMBER_TUPLE(elem) |
#define | _TF_TOKENS_INITIALIZE_MEMBER(elem) elem(TF_PP_STRINGIZE(elem), TfToken::Immortal) |
#define | _TF_TOKENS_DEFINE_ARRAY_MEMBER(r, data, i, elem) |
#define | _TF_TOKENS_APPEND_MEMBER(r, data, i, elem) |
#define | _TF_TOKENS_APPEND_MEMBER_BODY(r, data, elem) allTokens.push_back(elem); |
#define | _TF_TOKENS_BUILD_ALLTOKENS_VECTOR(seq) BOOST_PP_SEQ_FOR_EACH_I(_TF_TOKENS_APPEND_MEMBER, ~, seq) |
#define | _TF_TOKENS_INITIALIZE_SEQ(seq) BOOST_PP_SEQ_FOR_EACH_I(_TF_TOKENS_DEFINE_MEMBER, ~, seq) |
#define | _TF_TOKENS_ASSIGN_ARRAY_SEQ(seq) BOOST_PP_SEQ_FOR_EACH(_TF_TOKENS_DEFINE_ARRAY_MEMBERS, ~, seq) |
#define | _TF_TOKENS_DEFINE_ARRAY_MEMBERS(r, data, elem) |
#define | _TF_TOKENS_IS_ARRAY(s, data, elem) |
#define | _TF_TOKENS_IS_NOT_ARRAY(s, data, elem) BOOST_PP_NOT(_TF_TOKENS_IS_ARRAY(s, data, elem)) |
#define | _TF_TOKENS_APPEND_ARRAY_ELEMENTS(r, data, elem) BOOST_PP_TUPLE_ELEM(1, 0, BOOST_PP_TUPLE_ELEM(2, 1, elem)) |
#define | _TF_DEFINE_TOKENS(key, seq) |
This file defines some macros that are useful for declaring and using static TfTokens.
Typically, using static TfTokens is either cumbersome, unsafe, or slow. These macros aim to solve many of the common problems.
The following is an example of how they can be used.
In header file:
In cpp file:
Access the token by using the key as though it were a pointer, like this:
An additional member, allTokens, is a std::vector<TfToken> populated with all of the generated token members.
There are PUBLIC and PRIVATE versions of the macros. The PRIVATE ones are intended to be used when the tokens will only be used in a single .cpp file, in which case they can be made file static. In the case of the PRIVATE, you only need to use the DEFINE macro.
Definition in file staticTokens.h.
#define _TF_DECLARE_PUBLIC_TOKENS2 | ( | key, | |
seq | |||
) |
Definition at line 108 of file staticTokens.h.
#define _TF_DECLARE_PUBLIC_TOKENS3 | ( | key, | |
eiapi, | |||
seq | |||
) |
Definition at line 105 of file staticTokens.h.
#define _TF_DECLARE_TOKENS2 | ( | key, | |
seq | |||
) |
Definition at line 202 of file staticTokens.h.
#define _TF_DECLARE_TOKENS3 | ( | key, | |
seq, | |||
eiapi | |||
) |
Definition at line 195 of file staticTokens.h.
#define _TF_DEFINE_TOKENS | ( | key, | |
seq | |||
) |
Definition at line 282 of file staticTokens.h.
#define _TF_TOKENS_APPEND_MEMBER | ( | r, | |
data, | |||
i, | |||
elem | |||
) |
Definition at line 233 of file staticTokens.h.
#define _TF_TOKENS_DECLARE_MEMBER | ( | r, | |
data, | |||
elem | |||
) |
Definition at line 171 of file staticTokens.h.
#define _TF_TOKENS_DECLARE_MEMBERS | ( | seq | ) |
Definition at line 180 of file staticTokens.h.
#define _TF_TOKENS_DEFINE_ARRAY_MEMBER | ( | r, | |
data, | |||
i, | |||
elem | |||
) |
Definition at line 227 of file staticTokens.h.
#define _TF_TOKENS_DEFINE_ARRAY_MEMBERS | ( | r, | |
data, | |||
elem | |||
) |
Definition at line 253 of file staticTokens.h.
#define _TF_TOKENS_DEFINE_MEMBER | ( | r, | |
data, | |||
i, | |||
elem | |||
) |
Definition at line 214 of file staticTokens.h.
#define _TF_TOKENS_EXPAND_ARRAY_ELEMENTS | ( | seq | ) |
Definition at line 188 of file staticTokens.h.
#define _TF_TOKENS_INITIALIZE_MEMBER_TUPLE | ( | elem | ) |
Definition at line 220 of file staticTokens.h.
#define _TF_TOKENS_IS_ARRAY | ( | s, | |
data, | |||
elem | |||
) |
Definition at line 261 of file staticTokens.h.
#define TF_DECLARE_PUBLIC_TOKENS | ( | ... | ) |
Macro to define public tokens.
This declares a list of tokens that can be used globally. Use in conjunction with TF_DEFINE_PUBLIC_TOKENS.
Definition at line 118 of file staticTokens.h.
#define TF_DEFINE_PRIVATE_TOKENS | ( | key, | |
seq | |||
) |
Macro to define private tokens.
Definition at line 129 of file staticTokens.h.
#define TF_DEFINE_PUBLIC_TOKENS | ( | key, | |
seq | |||
) |
Macro to define public tokens.
Use in conjunction with TF_DECLARE_PUBLIC_TOKENS.
Definition at line 123 of file staticTokens.h.