TriggerServer.h

00001 #ifndef SCTAPIIPC_TRIGGERSERVER_H
00002 #define SCTAPIIPC_TRIGGERSERVER_H
00003 
00004 // CORBA wrapper for SctApi::Trigger class
00005 
00006 // fwd dec self
00007 class TriggerServer;
00008 
00009 //includes
00010 #include "Sct_SctApi/SctApi.hh"
00011 #include <ipc/object.h>
00012 #include <omniORB4/poa.h> // For PortableServer::RefCountServantBase
00013 #include <boost/shared_ptr.hpp>
00014 
00015 // fwd dec others:
00016 namespace SctApi {
00017   class Trigger;
00018 };
00019 
00020 //declaration
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   //static TriggerServer *getServer(boost::shared_ptr< ::SctApi::Trigger> trigger);
00032   //static void mapServer(boost::shared_ptr< ::SctApi::Trigger> trigger, TriggerServer *server);
00033 
00034   virtual ~TriggerServer();
00035 
00036   virtual char* 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 void clear ();
00055   virtual void addCommand (Sct_SctApi::RODTriggerFirstType first, Sct_SctApi::RODTriggerSecondType second);
00056   
00057   ::Sct_SctApi::Trigger::Source getSource();
00058   void setSource(::Sct_SctApi::Trigger::Source s);
00059   CORBA::Short getRandom();
00060   void setRandom(CORBA::Short random);
00061   CORBA::Double getFrequency();
00062   void setFrequency(CORBA::Double freq);
00063   
00064   virtual Sct_SctApi::RODTriggers * getRODTriggers(CORBA::Short scan_point);
00065   virtual Sct_SctApi::TIMTriggers * getTIMTriggers(CORBA::Short scan_point);
00066 
00067   virtual CORBA::Boolean isValidRODTrigger();
00068   virtual CORBA::Boolean isValidTIMTrigger();
00069   virtual CORBA::Boolean timNeedsSequencer();
00070   virtual void shutdown();
00071 
00072  private:
00073   boost::shared_ptr< ::SctApi::Trigger> m_worker;
00074   boost::shared_ptr< ::SctApi::Trigger> worker() { return m_worker; };
00075  protected:
00076   //static std::map<boost::shared_ptr< ::SctApi::Trigger>, TriggerServer *> serverMap;
00077 
00078  private:
00079   static std::string getServerName();
00080 
00081   //SctApi::Trigger &worker();
00082 };
00083 
00084 #endif

Generated on Mon Feb 6 14:01:36 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6