Bayeux  3.4.1
Core Foundation library for SuperNEMO
model_macros.h
Go to the documentation of this file.
1 /* Author(s) : Francois Mauger <mauger@lpccaen.in2p3.fr>
3  * Creation date: 2011-12-05
4  * Last modified: 2011-12-05
5  *
6  * License:
7  *
8  * Description:
9  *
10  * Macros for geometry models
11  *
12  * History:
13  *
14  */
15 
16 #ifndef GEOMTOOLS_MODEL_MACROS_H
17 #define GEOMTOOLS_MODEL_MACROS_H 1
18 
19 // This project:
20 #include <geomtools/i_model.h>
21 
22 #define GEOMTOOLS_MODEL_INHERIT \
23  public ::geomtools::i_model \
24 
25 
26 #define GEOMTOOLS_MODEL_CLASS_DECLARE(ModelClassName) \
27  class ModelClassName : GEOMTOOLS_MODEL_INHERIT \
28 
29 
30 #define GEOMTOOLS_MODEL_REGISTRATION_INTERFACE(ModelClassName) \
31  private: \
32  DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_INTERFACE(::geomtools::i_model,ModelClassName) \
33 
34 
35 #define GEOMTOOLS_MODEL_REGISTRATION_IMPLEMENT(ModelClassName,ModelClassId) \
36  DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_IMPLEMENTATION(::geomtools::i_model,ModelClassName,ModelClassId) \
37 
38 
39 #define GEOMTOOLS_MODEL_PRE_CONSTRUCT_INTERFACE() \
40  protected: \
41  virtual void _pre_construct (::datatools::properties &); \
42 
43 
44 #define GEOMTOOLS_MODEL_POST_CONSTRUCT_INTERFACE() \
45  protected: \
46  virtual void _post_construct (::datatools::properties &); \
47 
48 
49 #define GEOMTOOLS_MODEL_AT_CONSTRUCT_INTERFACE() \
50  protected: \
51  virtual void _at_construct (const std::string &, \
52  const ::datatools::properties &, \
53  ::geomtools::models_col_type * = 0); \
54 
55 
56 #define GEOMTOOLS_MODEL_AT_CONSTRUCT_IMPL_HEAD(ModelClassName,Name,Setup,Models) \
57  void ModelClassName::_at_construct (const std::string & Name, \
58  const ::datatools::properties & Setup, \
59  ::geomtools::models_col_type * Models) \
60 
61 
62 #endif // GEOMTOOLS_MODEL_MACROS_H
63 
64 /*
65 ** Local Variables: --
66 ** mode: c++ --
67 ** c-file-style: "gnu" --
68 ** tab-width: 2 --
69 ** End: --
70 */