std::remove(controller_path.c_str());
m_cache_server = new CacheServer(m_cct, controller_path,
- ([&](CacheSession* p, ObjectCacheRequest* s){handle_request(p, s);}));
+ std::bind(&CacheController::handle_request, this,
+ std::placeholders::_1, std::placeholders::_2));
int ret = m_cache_server->run();
if (ret != 0) {
case RBDSC_READ: {
// lookup object in local cache store
std::string cache_path;
- ObjectCacheReadData* req_read_data = (ObjectCacheReadData*)req;
+ ObjectCacheReadData* req_read_data =
+ reinterpret_cast <ObjectCacheReadData*> (req);
int ret = m_object_cache_store->lookup_object(
req_read_data->pool_namespace, req_read_data->pool_id,
req_read_data->snap_id, req_read_data->oid, cache_path);
namespace ceph {
namespace immutable_obj_cache {
-CacheSession::CacheSession(uint64_t session_id, io_service& io_service,
- ProcessMsg processmsg, CephContext* cct)
- : m_session_id(session_id), m_dm_socket(io_service),
- m_server_process_msg(processmsg), cct(cct) {
+CacheSession::CacheSession(io_service& io_service,
+ ProcessMsg processmsg,
+ CephContext* cct)
+ : m_dm_socket(io_service),
+ m_server_process_msg(processmsg), m_cct(cct) {
m_bp_header = buffer::create(get_header_size());
}
boost::system::error_code close_ec;
m_dm_socket.close(close_ec);
if (close_ec) {
- ldout(cct, 20) << "close: " << close_ec.message() << dendl;
+ ldout(m_cct, 20) << "close: " << close_ec.message() << dendl;
}
}
}
}
void CacheSession::read_request_header() {
- ldout(cct, 20) << dendl;
+ ldout(m_cct, 20) << dendl;
boost::asio::async_read(m_dm_socket,
boost::asio::buffer(m_bp_header.c_str(), get_header_size()),
boost::asio::transfer_exactly(get_header_size()),
void CacheSession::handle_request_header(const boost::system::error_code& err,
size_t bytes_transferred) {
- ldout(cct, 20) << dendl;
+ ldout(m_cct, 20) << dendl;
if (err || bytes_transferred != get_header_size()) {
fault();
return;
}
void CacheSession::read_request_data(uint64_t data_len) {
- ldout(cct, 20) << dendl;
+ ldout(m_cct, 20) << dendl;
bufferptr bp_data(buffer::create(data_len));
boost::asio::async_read(m_dm_socket,
boost::asio::buffer(bp_data.c_str(), bp_data.length()),
void CacheSession::handle_request_data(bufferptr bp, uint64_t data_len,
const boost::system::error_code& err,
size_t bytes_transferred) {
- ldout(cct, 20) << dendl;
+ ldout(m_cct, 20) << dendl;
if (err || bytes_transferred != data_len) {
fault();
return;
}
void CacheSession::process(ObjectCacheRequest* req) {
- ldout(cct, 20) << dendl;
+ ldout(m_cct, 20) << dendl;
m_server_process_msg(this, req);
}
void CacheSession::send(ObjectCacheRequest* reply) {
- ldout(cct, 20) << dendl;
+ ldout(m_cct, 20) << dendl;
bufferlist bl;
reply->encode();
bl.append(reply->get_payload_bufferlist());
boost::asio::transfer_exactly(bl.length()),
[this, bl, reply](const boost::system::error_code& err,
size_t bytes_transferred) {
+ delete reply;
if (err || bytes_transferred != bl.length()) {
fault();
return;
}
- delete reply;
});
}
void CacheSession::fault() {
- ldout(cct, 20) << dendl;
+ ldout(m_cct, 20) << dendl;
// TODO(dehao)
}