00001 #ifndef SCTAPIIPC_SCANMONITORWRAPPER_H 00002 #define SCTAPIIPC_SCANMONITORWRAPPER_H 00003 00004 // Actually, ignore this never gets used 00005 00020 // Need complete types for public inheritence 00021 #include "SctApi/ScanMonitor.h" 00022 #include "Sct_SctApi/SctApi.hh" // for ScanMonitor{_var,_ptr} interface 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 // This would be useful... 00048 char *status(); 00049 }; 00050 00051 #endif