ScanServer.h

00001 #ifndef SCTAPIIPC_SCANSERVER_H
00002 #define SCTAPIIPC_SCANSERVER_H
00003 
00004 // CORBA wrapper for SctApi::Scan class
00005 
00006 // fwd dec
00007 class ScanServer;
00008 
00009 //includes
00010 #include "Sct_SctApi/SctApi.hh"
00011 #include <ipc/object.h>
00012 #include <boost/shared_ptr.hpp>
00013 
00014 // fwd dec others:
00015 namespace SctApi {
00016   class Scan;
00017 };
00018 
00019 //declaration
00020 class ScanServer : public IPCNamedObject<POA_Sct_SctApi::Scan>
00021 {
00022   ScanServer(const ScanServer &);
00023   ScanServer &operator=(const ScanServer &);
00024 
00025   static int nextNumber;
00026 
00027  public:
00028   ScanServer();
00029 
00030   //ScanServer(const ScanServer &copy);
00031 
00032   virtual ~ScanServer();
00033 
00034   virtual char* print ();
00035   virtual void configure (CORBA::UShort type, CORBA::Double start, CORBA::Double stop, CORBA::Double step);
00036   virtual void configure2 (CORBA::UShort type, CORBA::Double start, CORBA::Double stop, CORBA::Double step);
00037   virtual Sct_SctApi::Trigger_ptr getTrigger1 ();
00038   virtual Sct_SctApi::Trigger_ptr getTrigger2 ();
00039   virtual void setTrigger1 (Sct_SctApi::Trigger_ptr trig);
00040   virtual void setTrigger2 (Sct_SctApi::Trigger_ptr trig);
00041   virtual void setScanVariable1 (CORBA::UShort var);
00042   virtual void setScanVariable2 (CORBA::UShort var);
00043   virtual CORBA::UShort getScanVariable1 ();
00044   virtual CORBA::UShort getScanVariable2 ();
00045   virtual void setNTrigs (CORBA::ULong nTrigs);
00046   virtual CORBA::ULong getNTrigs ();
00047   virtual Sct_SctApi::Scan::TrigPoints * getVariableTrigs();
00048   virtual void setVariableTrigs(const Sct_SctApi::Scan::TrigPoints& scans);
00049   virtual void setVariableTrigRange(CORBA::UShort start, CORBA::UShort end, CORBA::ULong value);
00050   virtual Sct_SctApi::Scan::ScanPoints * getScanPoints1 ();
00051   virtual Sct_SctApi::Scan::ScanPoints * getScanPoints2 ();
00052   virtual void setScanPoints1 (const Sct_SctApi::Scan::ScanPoints & scans);
00053   virtual void setScanPoints2 (const Sct_SctApi::Scan::ScanPoints & scans);
00054   virtual CORBA::Long getOption (Sct_SctApi::Scan::ScanOptions opt);
00055   virtual void setOption (Sct_SctApi::Scan::ScanOptions opt, CORBA::Long val);
00056   virtual void setScanNumber (CORBA::ULong scan);
00057   virtual void setRunNumber (CORBA::ULong scan);
00058   virtual CORBA::ULong getScanNumber ();
00059   virtual CORBA::ULong getRunNumber ();
00060 #if !USE_CONST_SCAN
00061   virtual sctConf::ModuleList * getModuleList (CORBA::ULong group);
00062   virtual void setModuleList (CORBA::ULong group, const sctConf::ModuleList& newList);
00063   virtual CORBA::ULong getNGroups ();
00064   virtual void setNGroups(CORBA::UShort val);
00065   virtual char * getStartTime();
00066   virtual void setStartTime(const char* t);
00067   virtual char * getEndTime();
00068   virtual void setEndTime(const char* t);
00069 #endif
00070 
00071   // Override default freeable
00072 #warning LESTER is guessing that the old destroy method corresponds to the new shutdown, so ... there is ALSO a similar method in the ScanServer class which I have similarly altered.
00073   // LESTER WAS
00074   // virtual void destroy(ipcStatus *_status);
00075   // LESTER BECOMES
00076   virtual void shutdown();
00077 
00078   boost::shared_ptr<SctApi::Scan> m_worker;
00079 
00080  protected:
00081   static std::string getServerName();
00082 
00083  protected:
00084   SctApi::Scan &worker();
00085 
00086 };
00087 
00088 #endif

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