00001
00002 #ifndef SCTAPIIPC_TRIGGERWRAPPER_H
00003 #define SCTAPIIPC_TRIGGERWRAPPER_H
00004
00019
00020 class TriggerWrapper;
00021
00022
00023 #include "SctApi/Trigger.h"
00024 #include "Sct_SctApi/SctApi.hh"
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