00001 #ifndef SCTAPIIPC_TRIGGERSERVER_H
00002 #define SCTAPIIPC_TRIGGERSERVER_H
00003
00004
00005
00006
00007 class TriggerServer;
00008
00009
00010 #include "Sct_SctApi/SctApi.hh"
00011 #include <ipc/object.h>
00012 #include <omniORB4/poa.h>
00013 #include <boost/shared_ptr.hpp>
00014
00015
00016 namespace SctApi {
00017 class Trigger;
00018 };
00019
00020
00021 class TriggerServer :
00022 public IPCNamedObject<POA_Sct_SctApi::Trigger>,
00023 public virtual PortableServer::RefCountServantBase {
00024 TriggerServer(const TriggerServer &);
00025 TriggerServer &operator=(const TriggerServer &);
00026 static int nextNumber;
00027 public:
00028 TriggerServer();
00029 explicit TriggerServer(const boost::shared_ptr< ::SctApi::Trigger> other);
00030
00031
00032
00033
00034 virtual ~TriggerServer();
00035
00036 virtual void print ();
00037 virtual void singleL1A ();
00038 virtual void doubleL1A (CORBA::UShort delay);
00039 virtual void delayedL1A (CORBA::UShort delay);
00040 virtual void calL1A (CORBA::UShort delay);
00041 virtual void pulseL1A (CORBA::UShort delay);
00042 virtual void softL1A (CORBA::UShort delay);
00043 virtual void softCalL1A (CORBA::UShort delay, CORBA::UShort delay2);
00044 virtual void softPulseL1A (CORBA::UShort delay, CORBA::UShort delay2);
00045 virtual void softBc (CORBA::UShort delay);
00046 virtual void soft();
00047 virtual void bc();
00048 virtual void bcL1A (CORBA::UShort delay);
00049 virtual void bcCalL1A (CORBA::UShort delay, CORBA::UShort delay2);
00050 virtual void bcPulseL1A (CORBA::UShort delay, CORBA::UShort delay2);
00051 virtual void setCommIncr (CORBA::UShort command, CORBA::UShort incr);
00052 virtual void getCommIncr (CORBA::UShort & command, CORBA::UShort & incr);
00053
00054 virtual Sct_SctApi::RODTriggers * getRODTriggers();
00055
00056 virtual void shutdown();
00057
00058 private:
00059 boost::shared_ptr< ::SctApi::Trigger> m_worker;
00060 boost::shared_ptr< ::SctApi::Trigger> worker() { return m_worker; };
00061 protected:
00062
00063
00064 private:
00065 static std::string getServerName();
00066
00067
00068 };
00069
00070 #endif