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

Generated on Fri Sep 16 18:01:56 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5