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