61 lines
1.4 KiB
C++
61 lines
1.4 KiB
C++
|
|
#pragma once
|
|||
|
|
#include "../communication/service/IMessageHandler.hh"
|
|||
|
|
#include "Logger.hh"
|
|||
|
|
#include "StorageManager.hh"
|
|||
|
|
#include <memory_resource>
|
|||
|
|
#include <map>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
namespace logging {
|
|||
|
|
|
|||
|
|
class LogStorageStreamAgent {
|
|||
|
|
public:
|
|||
|
|
|
|||
|
|
enum StreamingContex {
|
|||
|
|
LOG_STORAGE_PARAMETES,
|
|||
|
|
READ_RECORDS_BLOCK
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
LogStorageStreamAgent( StorageReadInterface & );
|
|||
|
|
|
|||
|
|
communication::IMessageHandler * get_context_of( StreamingContex );
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
|
|||
|
|
StorageReadInterface & storage;
|
|||
|
|
|
|||
|
|
struct LogParameters : communication::IMessageHandler {
|
|||
|
|
|
|||
|
|
LogStorageStreamAgent & agent;
|
|||
|
|
|
|||
|
|
struct Responce {
|
|||
|
|
Logger::Id idx; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
StorageManager::BlockId n; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
LogParameters( LogStorageStreamAgent & agent_ ) : agent(agent_) {}
|
|||
|
|
void handler( communication::IMessageLink * link );
|
|||
|
|
|
|||
|
|
} log_parameters;
|
|||
|
|
|
|||
|
|
//!<21><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
struct ReadingRecordsBlock : communication::IMessageHandler {
|
|||
|
|
|
|||
|
|
LogStorageStreamAgent & agent;
|
|||
|
|
|
|||
|
|
struct Responce {
|
|||
|
|
StorageManager::prefetch_result operation_result; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
uint16_t length; // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
ReadingRecordsBlock( LogStorageStreamAgent & agent_ ) : agent(agent_) {}
|
|||
|
|
void handler( communication::IMessageLink * link );
|
|||
|
|
|
|||
|
|
} reading_records_block;
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|