Cat
Python_Obj.cpp
Go to the documentation of this file.
1 #include <vector>
2 #include <map>
3 #include <list>
4 
5 #include "Attrib.h"
6 #include "Computer.h"
7 #include "Hierarchy.h"
8 #include "Application.h"
9 
10 #include "DLL.h"
11 #include "DLLMgr.h"
12 #include "ProcDataBase.h"
13 
14 #include <boost/python.hpp>
15 #include <boost/python/suite/indexing/vector_indexing_suite.hpp>
16 
17 using namespace boost::python;
18 
19 struct ElementWrap : Element, wrapper<Element>
20 {
21  void help(){this->get_override("help")();};
22  StatusCode init(){return this->get_override("init")();};
23  void reset(){this->get_override("reset")();};
24  void update(){this->get_override("update")();};
25 };
26 
27 void export_obj()
28 {
29  class_<Attrib>("Attrib")
30  .def("is", &Attrib::is)
31  .def("add", &Attrib::add)
32  .def("remove", &Attrib::remove)
33  .def("attributs", &Attrib::attributs)
34  ;
35 
36  void (Object::*msgx1)(std::string) = (&Object::msg);
37  void (Object::*msgx2)(std::string, std::string) = (&Object::msg);
38  void (Object::*verbosex1)(std::string) = (&Object::verbose);
39  void (Object::*verbosex2)(std::string, std::string) = (&Object::verbose);
40  void (Object::*debugx1)(std::string) = (&Object::debug);
41  void (Object::*debugx2)(std::string, std::string) = (&Object::debug);
42  void (Object::*infox1)(std::string) = (&Object::info);
43  void (Object::*infox2)(std::string, std::string) = (&Object::info);
44  void (Object::*warningx1)(std::string) = (&Object::warning);
45  void (Object::*warningx2)(std::string, std::string) = (&Object::warning);
46  void (Object::*errorx1)(std::string) = (&Object::error);
47  void (Object::*errorx2)(std::string, std::string) = (&Object::error);
48  void (Object::*fatalx1)(std::string) = (&Object::fatal);
49  void (Object::*fatalx2)(std::string, std::string) = (&Object::fatal);
50 
51  class_<Object, bases <Attrib> >("Object")
52  .def("name", &Object::name)
53  .def("type", &Object::type)
54  .def("id", &Object::id)
55  .def("title", &Object::title)
56  .def("dllName", &Object::dllName)
57  .def("setName", &Object::setName)
58  .def("setType", &Object::setType)
59  .def("setId", &Object::setId)
60  .def("setTitle", &Object::setTitle)
61  .def("msgSvc",&Object::msgSvc)
62  .def("msg", msgx1)
63  .def("msg", msgx2)
64  .def("verbose", verbosex1)
65  .def("verbose", verbosex2)
66  .def("debug", debugx1)
67  .def("debug", debugx2)
68  .def("info", infox1)
69  .def("info", infox2)
70  .def("warning", warningx1)
71  .def("warning", warningx2)
72  .def("error", errorx1)
73  .def("error", errorx2)
74  .def("fatal", fatalx1)
75  .def("fatal", fatalx2)
76  ;
77 
78  class_<Application, bases <Object> >("Application")
79  .def("initialize", &Application::initialize)
80  .def("run", &Application::run)
81  .def("finalize", &Application::finalize)
82  .def("create", &Application::create)
83  .def("cd", &Application::cd)
84  .def("options", &Application::options,
85  return_value_policy<reference_existing_object>())
86  .def("hostname", &Application::hostname)
87  .def("setCurrent", &Application::setCurrent)
88  .def("current", &Application::current,
89  return_value_policy<reference_existing_object>())
90  .def("computer", &Application::computer,
91  return_value_policy<reference_existing_object>())
92  .def("dllMgr", &Application::dllMgr,
93  return_value_policy<reference_existing_object>())
94  .def("procDb", &Application::procDb,
95  return_value_policy<reference_existing_object>())
96  .def("ctrl", &Application::ctrl)
97  .def("setCtrl", &Application::setCtrl)
98  .def("prepare", &Application::prepare)
99  .def("loop", &Application::loop)
100  .def("terminate", &Application::terminate)
101  ;
102 
103  Hierarchy* (Hierarchy::*parentx0)() = (&Hierarchy::parent);
104  Hierarchy* (Hierarchy::*parentx1)(std::string) = (&Hierarchy::parent);
105  void (Hierarchy::*delChildx0)(Hierarchy*) = (&Hierarchy::delChild);
106  void (Hierarchy::*delChildx1)(std::string) = (&Hierarchy::delChild);
107  void (Hierarchy::*treex0)() = (&Hierarchy::tree);
108 
109  class_< std::vector<Hierarchy*> >("HierarchyPtrVec")
110  .def(vector_indexing_suite< std::vector<Hierarchy*> >())
111  ;
112 
113  class_<Hierarchy, bases<Object> >("Hierarchy")
114  .def("clear", &Hierarchy::clear)
115  .def("setParent", &Hierarchy::setParent)
116  .def("parent", parentx0,return_value_policy<reference_existing_object>())
117  .def("parent", parentx1,return_value_policy<reference_existing_object>())
118  .def("origin", &Hierarchy::origin,return_value_policy<reference_existing_object>())
119  .def("addChild", &Hierarchy::addChild)
120  .def("children", &Hierarchy::children)
121  .def("child", &Hierarchy::child,return_value_policy<reference_existing_object>())
122  .def("childTyped", &Hierarchy::childTyped,return_value_policy<reference_existing_object>())
123  .def("numberOfChildren", &Hierarchy::numberOfChildren)
124  .def("hasChildren", &Hierarchy::hasChildren)
125  .def("delChild", delChildx0)
126  .def("delChild", delChildx1)
127  .def("path", &Hierarchy::path)
128  .def("pathTyped", &Hierarchy::pathTyped)
129  .def("tree", treex0)
130  ;
131 
132  class_<ElementWrap, boost::noncopyable, bases<Hierarchy> >("Element")
133  .def("help",pure_virtual(&Element::help))
134  .def("init",pure_virtual(&Element::init))
135  .def("reset",pure_virtual(&Element::reset))
136  .def("update",pure_virtual(&Element::update))
137  .def("recursiveInitElement",&Element::recursiveInitElement)
138  .def("recursiveInitCommunications",&Element::recursiveInitCommunications)
139  .def("setConnection",&Element::setConnection)
140  .def("connection",&Element::connection,return_value_policy<reference_existing_object>())
141  ;
142 
143  class_<Computer, bases<Element> >("Computer")
144  .def("help",&Computer::help)
145  .def("init",&Computer::init)
146  .def("reset",&Computer::reset)
147  .def("update",&Computer::update)
148  ;
149 }
150 
void info(std::string mymsg)
Definition: Object.h:38
Definition: Object.h:21
virtual void reset()=0
Hierarchy * childTyped(std::string)
Definition: Hierarchy.cpp:239
void verbose(std::string mymsg)
Definition: Object.h:36
void help()
Definition: Computer.h:37
Hierarchy * connection()
Definition: Element.cpp:84
StatusCode create(std::string, std::string)
Hierarchy * child(std::string)
Definition: Hierarchy.cpp:133
StatusCode loop()
std::string attributs()
Definition: Attrib.cpp:54
StatusCode setConnection(Hierarchy *)
Definition: Element.cpp:55
unsigned char id()
Definition: Object.h:30
bool is(int attribut)
Definition: Attrib.h:50
StatusCode prepare(std::string procName, Element *element=0, int nEvt=1)
void setParent(Hierarchy *parent)
Definition: Hierarchy.cpp:67
std::string title()
Definition: Object.h:31
void add(int attribut)
Definition: Attrib.h:67
void export_obj()
Definition: Python_Obj.cpp:27
void setName(std::string name)
Definition: Object.h:51
StatusCode init()
Definition: Python_Obj.cpp:22
bool hasChildren()
Definition: Hierarchy.cpp:303
std::vector< Hierarchy * > children()
Definition: Hierarchy.h:33
void delChild(Hierarchy *)
Definition: Hierarchy.cpp:92
Hierarchy * parent()
Definition: Hierarchy.h:28
std::string hostname()
Definition: Application.h:173
void fatal(std::string mymsg)
Definition: Object.h:41
void update()
Definition: Computer.h:60
void update()
Definition: Python_Obj.cpp:24
unsigned long numberOfChildren()
Definition: Hierarchy.cpp:125
void reset()
Definition: Computer.h:55
StatusCode terminate()
StatusCode initialize()
Definition: Application.cpp:72
StatusCode run(std::string procName, Element *element=0, int nEvt=1)
void remove(int attribut)
Definition: Attrib.h:86
Options * options()
Definition: Application.h:86
void setType(std::string type)
Definition: Object.h:52
Computer * computer()
Definition: Application.h:94
void error(std::string mymsg)
Definition: Object.h:40
void setId(unsigned char id)
Definition: Object.h:53
void debug(std::string mymsg)
Definition: Object.h:37
virtual StatusCode init()=0
void msg(std::string mymsg)
Definition: Object.h:35
void setTitle(std::string title)
Definition: Object.h:54
std::string dllName()
Definition: Object.h:74
void tree()
Definition: Hierarchy.h:46
DLLMgr * dllMgr()
Definition: Application.h:103
StatusCode cd(std::string path)
Definition: Application.h:158
ProcDataBase * procDb()
Definition: Application.h:111
virtual void update()=0
void recursiveInitCommunications()
Definition: Element.cpp:44
StatusCode init()
Definition: Computer.h:43
StatusCode finalize()
std::string name() const
Definition: Object.h:28
std::string ctrl()
Definition: Application.h:314
void reset()
Definition: Python_Obj.cpp:23
Hierarchy * current()
Definition: Application.h:149
virtual void addChild(Hierarchy *element)
Definition: Hierarchy.cpp:83
void msgSvc(int level, std::string msg, std::string name)
Definition: Object.h:33
void help()
Definition: Python_Obj.cpp:21
std::string pathTyped(std::string=std::string(""))
Definition: Hierarchy.cpp:356
std::string type()
Definition: Object.h:29
virtual void help()=0
void setCurrent(Hierarchy *current)
Definition: Application.h:141
void warning(std::string mymsg)
Definition: Object.h:39
void clear()
Definition: Hierarchy.cpp:35
void recursiveInitElement()
Definition: Element.cpp:32
Hierarchy * origin()
Definition: Hierarchy.h:30
void setCtrl(std::string control)
Definition: Application.h:306
std::string path(std::string=std::string(""))
Definition: Hierarchy.cpp:344