Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

LogConsumerActivator_Impl.h

Go to the documentation of this file.
00001 00029 #ifndef LOGCONSUMERACTIVATOR_IMPL 00030 #define LOGCONSUMERACTIVATOR_IMPL 00031 00032 #include "BP_CosLw_Log.h" 00033 #include <map> 00034 #include <deque> 00035 #include <string> 00036 #include <pthread.h> 00037 00038 #include "LogState.h" 00039 #include "Consumer_Impl.h" 00040 #include "EvictionMngr.h" 00041 00042 00066 class LogConsumerActivator_Impl : 00067 public virtual PortableServer::ServantActivator, 00068 public virtual CORBA::LocalObject, 00069 public virtual EvictionMngr 00070 { 00071 public: 00079 LogConsumerActivator_Impl(const unsigned long q_size, LogState& state); 00080 00085 virtual ~LogConsumerActivator_Impl(); 00086 00098 virtual PortableServer::Servant 00099 incarnate( 00100 const PortableServer::ObjectId& oid, 00101 PortableServer::POA_ptr adapter 00102 ) throw(CORBA::SystemException, PortableServer::ForwardRequest); 00103 00120 virtual void 00121 etherealize( 00122 const PortableServer::ObjectId& oid, 00123 PortableServer::POA_ptr poa, 00124 PortableServer::Servant servant, 00125 CORBA::Boolean cleanup_in_progress, 00126 CORBA::Boolean activations_remain 00127 ) throw(CORBA::SystemException); 00128 00136 virtual void 00137 invocation_active(const std::string& evictable_id); 00138 00139 private: 00140 00142 typedef std::deque<std::string> OID_Queue; 00143 00145 OID_Queue _oid_queue; 00146 00148 LogState& _state; 00149 00151 const unsigned long _max_q_size; 00152 00154 pthread_mutex_t _storage_mutex; 00155 00156 }; 00157 #endif