Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

ScanWrapper.h

00001 
00002 #ifndef SCTAPIIPC_SCANWRAPPER_H
00003 #define SCTAPIIPC_SCANWRAPPER_H
00004 
00019 //Forward declaration
00020 class ScanWrapper;
00021 
00022 // Need complete types for public inheritence
00023 #include "SctApi/SctApi.h" // for ::SctApi::Scan interface
00024 #include "Sct_SctApi/SctApi.hh" // for Scan{_var,_ptr} interface 
00025 
00026 class ScanWrapper : public ::SctApi::Scan {
00027  public:
00028   typedef enum MemoryPolicy_enum { 
00029     takeOwnershipOfObjectReference, 
00030     doNotTakeOwnershipOfObjectReference
00031   } MemoryPolicy;
00032  private:
00033   const MemoryPolicy m_memoryPolicy;
00034  private:
00035   Sct_SctApi::Scan_var m_worker;
00036   Sct_SctApi::Scan_ptr corbaScanServer() const { return Sct_SctApi::Scan::_duplicate(m_worker); };
00037   Sct_SctApi::Scan_ptr corbaScanServer() { return Sct_SctApi::Scan::_duplicate(m_worker); };
00038  public:
00039   typedef ::SctApi::Scan::ScanPoints ScanPoints;
00040   typedef ::SctApi::Scan::TrigPoints TrigPoints;
00041   typedef ::SctApi::Scan::ScanOptionsEnum ScanOptionsEnum;
00042  public:
00043   ScanWrapper(Sct_SctApi::Scan_ptr w/*, const MemoryPolicy memoryPolicy*/) :
00044     m_memoryPolicy(doNotTakeOwnershipOfObjectReference/*memoryPolicy*/) {
00045     if (m_memoryPolicy == doNotTakeOwnershipOfObjectReference) {
00046       m_worker = Sct_SctApi::Scan::_duplicate(w);
00047     } else {
00048       m_worker = w;
00049     };
00050   };
00051   virtual ~ScanWrapper() {
00052   };
00053 
00054   void configure(unsigned short type, float start, float stop, float step) { return corbaScanServer()->configure(type, start, stop, step); };
00055   void configure2(unsigned short type, float start, float stop, float step) { return corbaScanServer()->configure2(type, start, stop, step); };
00056 
00057   const boost::shared_ptr< ::SctApi::Trigger> getTrigger1() const;
00058   const boost::shared_ptr< ::SctApi::Trigger> getTrigger2() const;
00059 
00060   boost::shared_ptr< ::SctApi::Trigger> getTrigger1();
00061   boost::shared_ptr< ::SctApi::Trigger> getTrigger2();
00062 
00063   void setTrigger1(boost::shared_ptr< ::SctApi::Trigger> trigger);
00064   void setTrigger2(boost::shared_ptr< ::SctApi::Trigger> trigger);
00065 
00066   void setScanVariable1(unsigned short var) { return corbaScanServer()->setScanVariable1(var); };
00067   void setScanVariable2(unsigned short var) { return corbaScanServer()->setScanVariable2(var); };
00068 
00069   unsigned short getScanVariable1() const { return corbaScanServer()->getScanVariable1(); };
00070   unsigned short getScanVariable2() const { return corbaScanServer()->getScanVariable2(); };
00071 
00072   void setNTrigs(unsigned long nTrigs) { corbaScanServer()->setNTrigs(nTrigs); };
00073   unsigned long getNTrigs() const { return corbaScanServer()->getNTrigs(); };
00074 
00075   const TrigPoints getVariableTrigs() const;
00076   void setVariableTrigs(const TrigPoints &scans);
00077   void setVariableTrigRange(unsigned short start, unsigned short end, unsigned long value);
00078 
00079   const ScanPoints getScanPoints1() const;
00080   const ScanPoints getScanPoints2() const;
00081   void setScanPoints1(const ScanPoints &scans);
00082   void setScanPoints2(const ScanPoints &scans);
00083 
00084   int getOption(ScanOptionsEnum scanOption) const;
00085   void setOption(ScanOptionsEnum scanOption, int option);
00086 
00088   void print() const { corbaScanServer()->print(); };
00089 
00090   void setScanNumber(unsigned int scan);
00091   unsigned int getScanNumber() const;
00092   void setRunNumber(unsigned int scan);
00093   unsigned int getRunNumber() const;
00094 
00095   ::SctApi::ModuleList getModuleList(unsigned int group) const;
00096   void setModuleList(unsigned int group, const ::SctApi::ModuleList & newList);
00097   unsigned int getNGroups() const;
00098   void setNGroups(unsigned int val);
00099   
00100   boost::posix_time::ptime getStartTime() const;
00101   void setStartTime(boost::posix_time::ptime t);
00102   
00103   boost::posix_time::ptime getEndTime() const;
00104   void setEndTime(boost::posix_time::ptime t);
00105 };
00106 
00107 #endif

Generated on Thu Feb 3 17:37:41 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5