00001 #ifndef SCTAPIIPC_SCANMONITORWRAPPER_H
00002 #define SCTAPIIPC_SCANMONITORWRAPPER_H
00003
00004
00005
00020
00021 #include "SctApi/ScanMonitor.h"
00022 #include "Sct_SctApi/SctApi.hh"
00023
00024 class ScanMonitorWrapper : public ::SctApi::ScanMonitor {
00025 public:
00026 typedef enum MemoryPolicy_enum {
00027 takeOwnershipOfObjectReference,
00028 doNotTakeOwnershipOfObjectReference
00029 } MemoryPolicy;
00030 private:
00031 const MemoryPolicy m_memoryPolicy;
00032 typedef Sct_SctApi::ScanMonitor_ptr WorkerType;
00033 WorkerType m_worker;
00034 const WorkerType worker() const { return m_worker; };
00035 WorkerType worker() { return m_worker; };
00036 public:
00037 ScanMonitorWrapper(const WorkerType & w, const MemoryPolicy memoryPolicy) :
00038 m_memoryPolicy(memoryPolicy),
00039 m_worker(w) {
00040 };
00041 virtual ~ScanMonitorWrapper() {
00042 if (m_memoryPolicy==takeOwnershipOfObjectReference) {
00043 CORBA::release(m_worker);
00044 };
00045 };
00046
00047
00048 char *status();
00049 };
00050
00051 #endif