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

ScanMonitorWrapper.h

00001 #ifndef SCTAPIIPC_SCANMONITORWRAPPER_H
00002 #define SCTAPIIPC_SCANMONITORWRAPPER_H
00003 
00018 //Forward declaration
00019 class TriggerWrapper;
00020 
00021 // Need complete types for public inheritence
00022 #include "SctApi/Trigger.h" 
00023 #include "Sct_SctApi/SctApi.hh" // for Trigger{_var,_ptr} interface 
00024 #include <string>
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   typedef ::SctApi::Trigger::TIMTriggers TIMTriggers;
00041  public:
00042   TriggerWrapper(const WorkerType & w, const MemoryPolicy memoryPolicy) :
00043     m_memoryPolicy(memoryPolicy),
00044     m_worker(w) {
00045   };
00046   virtual ~TriggerWrapper() {
00047     if (m_memoryPolicy==takeOwnershipOfObjectReference) {
00048       CORBA::release(m_worker);
00049     };
00050   };
00051   void singleL1A() { 
00052     return worker()->singleL1A(); };
00053   void doubleL1A(unsigned short delay) { 
00054     return worker()->doubleL1A(delay); };
00055   void delayedL1A(unsigned short delay) { 
00056     return worker()->delayedL1A(delay); };
00057   void calL1A(unsigned short delay) { 
00058     return worker()->calL1A(delay); };
00059   void pulseL1A(unsigned short delay) { 
00060     return worker()->pulseL1A(delay); };
00061   void softL1A(unsigned short delay) { 
00062     return worker()->softL1A(delay); };
00063   void softCalL1A(unsigned short delay, unsigned short delay2) { 
00064     return worker()->softCalL1A(delay, delay2); };
00065   void softPulseL1A(unsigned short delay, unsigned short delay2) { 
00066     return worker()->softPulseL1A(delay, delay2); };
00067   void softBc(unsigned short delay) { 
00068     return worker()->softBc(delay); };
00069   void soft() { 
00070     return worker()->soft(); };
00071   void bc() { 
00072     return worker()->bc(); };
00073   void bcL1A(unsigned short delay) { 
00074     return worker()->bcL1A(delay); };
00075   void bcCalL1A(unsigned short delay, unsigned short delay2) { 
00076     return worker()->bcCalL1A(delay, delay2); };
00077   void bcPulseL1A(unsigned short delay, unsigned short delay2) { 
00078     return worker()->bcPulseL1A(delay, delay2); };
00079   void setCommIncr(unsigned short command, unsigned short incr) { 
00080     return worker()->setCommIncr(command, incr); };
00081   void getCommIncr(unsigned short &command, unsigned short &incr) const { 
00082     return worker()->getCommIncr(command, incr); };
00083   void clear(){
00084     return worker()->clear();}
00085   void addCommand(UINT16 first, UINT32 second){
00086     return worker()->addCommand(first, second);}
00087 
00088   const RODTriggers getRODTriggers() const;
00089 
00090   const TIMTriggers getTIMTriggers() const;
00091 
00092   bool isValidRODTrigger() const{
00093     return worker()->isValidRODTrigger();
00094   }
00095   bool isValidTIMTrigger() const{
00096     return worker()->isValidTIMTrigger();
00097   }
00098 
00099   std::string print() const;
00100 };
00101 
00102 #endif

Generated on Thu Dec 15 21:14:33 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5