HGCal Test Beam  03a93d6239a951948e06fb3ef8dae4cbdebfad30
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Slot.cc
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////
2 // File: Slot.cc
3 // Purpose: Models a slot to which a signal can be connected.
4 // Created: Summer-2002 Harrison B. Prosper
5 // Updated: 05-Jun-2008 HBP Adapt to CMS
6 // 14-Apr-2011 HBP use unsigned long
7 ///////////////////////////////////////////////////////////////////////
8 //$Revision: 1.2 $
9 
10 #include <Python.h>
11 #include <iostream>
12 #include <iomanip>
13 //#include "PhysicsTools/PyGui/interface/Slot.h"
14 #include "HGCal/TBEventDisplay/interface/Slot.h"
15 
16 using namespace std;
17 
19 
20 Slot::Slot(PyObject* object, const char *method)
21  : _object(object),
22  _mstr(method),
23  _method(std::vector<char>(_mstr.size()+1,0))
24 {
25  copy(_mstr.begin(), _mstr.end(), _method.begin());
26 }
27 
29 {}
30 
31 // SLOTS
32 ////////
33 
34 void Slot::handleSignal(int id)
35 {
36  char ip[4] = {"(i)"};
37 
38  PyObject* result = PyObject_CallMethod(_object, &_method[0], ip, id);
39  if ( PyErr_Occurred() ) PyErr_Clear();
40 
41  // Decrement reference count. Use XDECREF to ignore NULL references
42 
43  Py_XDECREF(result);
44 }
45 
47 {
48  PyObject* result = PyObject_CallMethod(_object, &_method[0], NULL);
49  if ( PyErr_Occurred() ) PyErr_Clear();
50 
51  // Decrement reference count. Use XDECREF to ignore NULL references
52 
53  Py_XDECREF(result);
54 }
55 
56 
void handleSignal()
Definition: Slot.cc:46
~Slot()
Definition: Slot.cc:28
Slot()
Definition: Slot.cc:18