LSST Applications g0b6bd0c080+a72a5dd7e6,g1182afd7b4+2a019aa3bb,g17e5ecfddb+2b8207f7de,g1d67935e3f+06cf436103,g38293774b4+ac198e9f13,g396055baef+6a2097e274,g3b44f30a73+6611e0205b,g480783c3b1+98f8679e14,g48ccf36440+89c08d0516,g4b93dc025c+98f8679e14,g5c4744a4d9+a302e8c7f0,g613e996a0d+e1c447f2e0,g6c8d09e9e7+25247a063c,g7271f0639c+98f8679e14,g7a9cd813b8+124095ede6,g9d27549199+a302e8c7f0,ga1cf026fa3+ac198e9f13,ga32aa97882+7403ac30ac,ga786bb30fb+7a139211af,gaa63f70f4e+9994eb9896,gabf319e997+ade567573c,gba47b54d5d+94dc90c3ea,gbec6a3398f+06cf436103,gc6308e37c7+07dd123edb,gc655b1545f+ade567573c,gcc9029db3c+ab229f5caf,gd01420fc67+06cf436103,gd877ba84e5+06cf436103,gdb4cecd868+6f279b5b48,ge2d134c3d5+cc4dbb2e3f,ge448b5faa6+86d1ceac1d,gecc7e12556+98f8679e14,gf3ee170dca+25247a063c,gf4ac96e456+ade567573c,gf9f5ea5b4d+ac198e9f13,gff490e6085+8c2580be5c,w.2022.27
LSST Data Management Base Package
|
Go to the source code of this file.
Macros | |
#define | LSST_CONTROL_FIELD(NAME, TYPE, DOC) |
A preprocessor macro used to define fields in C++ "control object" structs. More... | |
#define | LSST_NESTED_CONTROL_FIELD(NAME, MODULE, TYPE, DOC) |
A preprocessor macro used to define fields in C++ "control object" structs, for nested control objects. More... | |
#define LSST_CONTROL_FIELD | ( | NAME, | |
TYPE, | |||
DOC | |||
) |
A preprocessor macro used to define fields in C++ "control object" structs.
These objects can then be wrapped into full-fledged Config objects by the functions in lsst.pex.config.wrap.
The defaults for the config class will be set properly if and only if the control class is default-constructable.
See lsst.pex.config.wrap.makeConfigClass for a complete example of how to use this macro.
#define LSST_NESTED_CONTROL_FIELD | ( | NAME, | |
MODULE, | |||
TYPE, | |||
DOC | |||
) |
A preprocessor macro used to define fields in C++ "control object" structs, for nested control objects.
These can be wrapped into Config objects by the functions in lsst.pex.config.wrap.
The nested object will be held as a regular, by-value data member (there's currently no way to use smart pointers or getters/setters instead).
The nested control object class must also be wrapped into a config object, and the Python module of the wrapped nested control object must be passed as the MODULE argument to the macro. When a wrapped control object is used as a nested field in the same package it is defined in, the MODULE argument must refer to the actual wrapped module, not the just the package, even if the name is lifted into the package namespace.
See lsst.pex.config.wrap.makeConfigClass for a complete example of how to use this macro.