00001 #ifndef SCTAPIIPC_SCANSERVER_H
00002 #define SCTAPIIPC_SCANSERVER_H
00003
00004
00005
00006
00007 class ScanServer;
00008
00009
00010 #include "Sct_SctApi/SctApi.hh"
00011 #include <ipc/object.h>
00012 #include <boost/shared_ptr.hpp>
00013
00014
00015 namespace SctApi {
00016 class Scan;
00017 };
00018
00019
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
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
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
00074
00075
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