Nymph  v1.5.2
Flow-Based Data Processing Framework
KTProcessorPy.hh
Go to the documentation of this file.
1 
9 #ifndef KTPROCESSORPY_HH_
10 #define KTPROCESSORPY_HH_
11 
12 #include "KTProcessor.hh"
13 
15 
17 {
18  using namespace Nymph;
19  using namespace boost::python;
20 
21  // KTProcessor base class
22  class_<KTProcessor, boost::noncopyable>("KTProcessor", no_init)
23  .def("ConnectASlot", &KTProcessor::ConnectASlot)
24  .def("ConnectASignal", &KTProcessor::ConnectASignal)
25  .def("ConnectSignalToSlot", &KTProcessor::ConnectSignalToSlot)
26  .def("Configure", Configure_JsonStr, "Configure from json encoded configuration")
27  //.def("GetSignal", KTProcessor::GetSignal)
28  //.def("RegisterSignal", &KTProcessor::RegisterSignal)
29  ;
30 }
31 
32 /*{
33  class KTProcessor : public KTConfigurable
34  {
35  public:
36 
37  template< class XProcessor >
38  void RegisterSignal(std::string name, XProcessor* signalPtr);
39 
40  template< class XTarget, typename XReturn >
41  void RegisterSlot(std::string name, XTarget* target, XReturn (XTarget::* funcPtr)());
42 
43  template< class XTarget, typename XReturn, typename XArg1 >
44  void RegisterSlot(std::string name, XTarget* target, XReturn (XTarget::* funcPtr)(XArg1));
45 
46  template< class XTarget, typename XReturn, typename XArg1, typename XArg2 >
47  void RegisterSlot(std::string name, XTarget* target, XReturn (XTarget::* funcPtr)(XArg1, XArg2));
48 
49  KTSignalWrapper* GetSignal(const std::string& name);
50 
51  KTSlotWrapper* GetSlot(const std::string& name);
52 
53  };
54 
55 
56  template< typename XSignalSig >
57  void KTProcessor::RegisterSignal(std::string name, XSignalSig* signalPtr)
58  {
59  KTDEBUG(processorlog, "Registering signal <" << name << "> in processor <" << fConfigName << ">");
60  KTSignalWrapper* sig = new KTSignalWrapper(signalPtr);
61  fSignalMap.insert(SigMapVal(name, sig));
62  return;
63  }
64 
65  template< class XTarget, typename XReturn >
66  void KTProcessor::RegisterSlot(std::string name, XTarget* target, XReturn (XTarget::* funcPtr)())
67  {
68  KTDEBUG(processorlog, "Registering slot <" << name << "> in processor <" << fConfigName << ">");
69 
70  KTSignalConcept< XReturn () > signalConcept;
71 
72  boost::function< XReturn () > *func = new boost::function< XReturn () >(boost::bind(funcPtr, target));
73 
74  KTSlotWrapper* slot = new KTSlotWrapper(func, &signalConcept);
75  fSlotMap.insert(SlotMapVal(name, slot));
76  return;
77  }
78 
79  template< class XTarget, typename XReturn, typename XArg1 >
80  void KTProcessor::RegisterSlot(std::string name, XTarget* target, XReturn (XTarget::* funcPtr)(XArg1))
81  {
82  KTDEBUG(processorlog, "Registering slot <" << name << "> in processor <" << fConfigName << ">");
83 
84  KTSignalConcept< XReturn (XArg1) > signalConcept;
85 
86  boost::function< XReturn (XArg1) > *func = new boost::function< XReturn (XArg1) >(boost::bind(funcPtr, target, _1));
87 
88  KTSlotWrapper* slot = new KTSlotWrapper(func, &signalConcept);
89  fSlotMap.insert(SlotMapVal(name, slot));
90  return;
91  }
92 
93  template< class XTarget, typename XReturn, typename XArg1, typename XArg2 >
94  void KTProcessor::RegisterSlot(std::string name, XTarget* target, XReturn (XTarget::* funcPtr)(XArg1, XArg2))
95  {
96  KTDEBUG(processorlog, "Registering slot <" << name << "> in processor <" << fConfigName << ">");
97 
98  KTSignalConcept< XReturn (XArg1, XArg2) > signalConcept;
99 
100  boost::function< XReturn (XArg1, XArg2) > *func = new boost::function< XReturn (XArg1, XArg2) >(boost::bind(funcPtr, target, _1, _2));
101 
102  KTSlotWrapper* slot = new KTSlotWrapper(func, &signalConcept);
103  fSlotMap.insert(SlotMapVal(name, slot));
104  return;
105  }
106 
107 
108 }*/
109 #endif /* KTPROCESSORPY_HH_ */
virtual bool Configure(const scarab::param_node &node)=0
Should perform parameter store and command-line configurations.
void ConnectASignal(KTProcessor *processor, const std::string &signalName, const std::string &slotName, int groupNum=-1)
Definition: KTProcessor.cc:70
Contains KTProcessor.
void export_Processor()
void ConnectASlot(const std::string &signalName, KTProcessor *processor, const std::string &slotName, int groupNum=-1)
Definition: KTProcessor.cc:47
bool(Nymph::KTConfigurable::* Configure_JsonStr)(const std::string &config)
void ConnectSignalToSlot(KTSignalWrapper *signal, KTSlotWrapper *slot, int groupNum=-1)
Definition: KTProcessor.cc:91