Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

TriggerWrapper.h

00001 
00002 #ifndef SCTAPIIPC_TRIGGERWRAPPER_H
00003 #define SCTAPIIPC_TRIGGERWRAPPER_H
00004 
00019 //Forward declaration
00020 class TriggerWrapper;
00021 
00022 // Need complete types for public inheritence
00023 #include "SctApi/Trigger.h" 
00024 #include "Sct_SctApi/SctApi.hh" // for Trigger{_var,_ptr} interface 
00025 
00026 class TriggerWrapper : public ::SctApi::Trigger {
00027  public:
00028   typedef enum MemoryPolicy_enum { 
00029     takeOwnershipOfObjectReference, 
00030     doNotTakeOwnershipOfObjectReference
00031   } MemoryPolicy;
00032  private:
00033   const MemoryPolicy m_memoryPolicy;
00034   typedef Sct_SctApi::Trigger_ptr WorkerType;
00035   WorkerType m_worker;
00036   const WorkerType worker() const { return m_worker; };
00037   WorkerType worker() { return m_worker; };
00038  public:
00039   typedef ::SctApi::Trigger::RODTriggers RODTriggers;
00040  public:
00041   TriggerWrapper(const WorkerType & w, const MemoryPolicy memoryPolicy) :
00042     m_memoryPolicy(memoryPolicy),
00043     m_worker(w) {
00044   };
00045   virtual ~TriggerWrapper() {
00046     if (m_memoryPolicy==takeOwnershipOfObjectReference) {
00047       CORBA::release(m_worker);
00048     };
00049   };
00050   void singleL1A() { 
00051     return worker()->singleL1A(); };
00052   void doubleL1A(unsigned short delay) { 
00053     return worker()->doubleL1A(delay); };
00054   void delayedL1A(unsigned short delay) { 
00055     return worker()->delayedL1A(delay); };
00056   void calL1A(unsigned short delay) { 
00057     return worker()->calL1A(delay); };
00058   void pulseL1A(unsigned short delay) { 
00059     return worker()->pulseL1A(delay); };
00060   void softL1A(unsigned short delay) { 
00061     return worker()->softL1A(delay); };
00062   void softCalL1A(unsigned short delay, unsigned short delay2) { 
00063     return worker()->softCalL1A(delay, delay2); };
00064   void softPulseL1A(unsigned short delay, unsigned short delay2) { 
00065     return worker()->softPulseL1A(delay, delay2); };
00066   void softBc(unsigned short delay) { 
00067     return worker()->softBc(delay); };
00068   void soft() { 
00069     return worker()->soft(); };
00070   void bc() { 
00071     return worker()->bc(); };
00072   void bcL1A(unsigned short delay) { 
00073     return worker()->bcL1A(delay); };
00074   void bcCalL1A(unsigned short delay, unsigned short delay2) { 
00075     return worker()->bcCalL1A(delay, delay2); };
00076   void bcPulseL1A(unsigned short delay, unsigned short delay2) { 
00077     return worker()->bcPulseL1A(delay, delay2); };
00078   void setCommIncr(unsigned short command, unsigned short incr) { 
00079     return worker()->setCommIncr(command, incr); };
00080   void getCommIncr(unsigned short &command, unsigned short &incr) const { 
00081     return worker()->getCommIncr(command, incr); };
00082   const RODTriggers getRODTriggers() const; 
00083   void print() const { 
00084     return worker()->print(); };  
00085 };
00086 
00087 #endif

Generated on Fri Sep 16 18:02:02 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5