00001
00030
#ifndef CONSUMER_IMPL_H
00031
#define CONSUMER_IMPL_H
00032
00033
#include "BP_CosLw_Log.h"
00034
#include "LogState.h"
00035
#include "LogBrowser.h"
00036
#include "EvictionMngr.h"
00037
00051 class Consumer_Impl :
00052
public virtual POA_CosLwLog::LogConsumer,
00053
public virtual Evictable
00054 {
00055
00056
public:
00057
00069
Consumer_Impl(
00070
LogState& state,
00071 EvictionMngr& evictmngr,
00072
const std::string& consumer_id
00073 );
00074
00079
virtual ~Consumer_Impl();
00080
00081
00088
virtual CORBA::ULongLong
get_max_size()
00089
throw(CORBA::SystemException);
00090
00097
virtual CORBA::ULongLong
get_current_size()
00098
throw(CORBA::SystemException);
00099
00107
virtual CORBA::ULongLong
get_n_records()
00108
throw(CORBA::SystemException);
00109
00116
virtual CosLwLog::LogFullAction
get_log_full_action()
00117
throw(CORBA::SystemException);
00118
00125
virtual CosLwLog::AvailabilityStatus get_availability_status()
00126
throw(CORBA::SystemException);
00127
00134
virtual CosLwLog::AdministrativeState
get_administrative_state()
00135
throw(CORBA::SystemException);
00136
00142
virtual CosLwLog::OperationalState
get_operational_state()
00143
throw(CORBA::SystemException);
00144
00160
virtual CosLwLog::RecordId
00161
get_record_id_from_time(
const CosLwLog::LogTime& from_time)
00162
throw(
CosLwLog::InvalidParam, CORBA::SystemException);
00163
00181
virtual CosLwLog::LogRecordSequence*
00182
retrieve_records(
00183 CosLwLog::RecordId& recid,
00184 CORBA::ULong& how_many
00185 )
00186
throw(
CosLwLog::InvalidParam, CORBA::SystemException);
00187
00206
virtual CosLwLog::LogRecordSequence*
00207
retrieve_records_by_level(
00208 CosLwLog::RecordId& current_id,
00209 CORBA::ULong& how_many,
00210
const CosLwLog::LogLevelSequence& levels)
00211
throw(
CosLwLog::InvalidParam, CORBA::SystemException);
00212
00237
virtual CosLwLog::LogRecordSequence*
00238
retrieve_records_by_producer_id(
00239 CosLwLog::RecordId& current_id,
00240 CORBA::ULong& how_many,
00241
const CosLwLog::StringSeq& value_list
00242 )
00243
throw(
CosLwLog::InvalidParam, CORBA::SystemException);
00244
00269
virtual CosLwLog::LogRecordSequence*
00270
retrieve_records_by_producer_name(
00271 CosLwLog::RecordId& current_id,
00272 CORBA::ULong& how_many,
00273
const CosLwLog::StringSeq& value_list
00274 )
00275
throw(
CosLwLog::InvalidParam, CORBA::SystemException);
00276
00277
00286
virtual bool evicted();
00287
00288
private:
00289
00291
LogState& _state;
00292
00294
LogBrowser _browser;
00295
00297 EvictionMngr& _mngr;
00298
00300
const std::string _me;
00301
00316
void _collect_records(
const CORBA::ULong& how_many,
00317 std::list<CosLwLog::LogRecord>& recd_list,
00318
const LogRecordFilter& filter
00319 );
00320
00331 CosLwLog::RecordId _transfer_records(
00332 CosLwLog::LogRecordSequence_var& recd_seq,
00333 std::list<CosLwLog::LogRecord>& recd_list
00334 );
00335 };
00336
#endif