}
class Admin : public Dispatcher {
- bool dispatch_impl(Message *m) {
+ bool ms_dispatch(Message *m) {
switch (m->get_type()) {
case MSG_MON_COMMAND_ACK:
handle_ack((MMonCommandAck*)m);
// ------------------------
// incoming messages
-bool Client::dispatch_impl(Message *m)
+bool Client::ms_dispatch(Message *m)
{
client_lock.Lock();
// friends
friend class SyntheticClient;
- bool dispatch_impl(Message *m);
+ bool ms_dispatch(Message *m);
public:
Client(Messenger *m, MonClient *mc);
delete m;
}
-bool LogClient::dispatch_impl(Message *m)
+bool LogClient::ms_dispatch(Message *m)
{
dout(20) << "dispatch " << m << dendl;
Messenger *messenger;
MonMap *monmap;
- bool dispatch_impl(Message *m);
+ bool ms_dispatch(Message *m);
bool is_synchronous;
void _send_log();
Journaler *journaler = 0;
class Dumper : public Dispatcher {
- bool dispatch_impl(Message *m) {
+ bool ms_dispatch(Message *m) {
switch (m->get_type()) {
case CEPH_MSG_OSD_OPREPLY:
objecter->handle_osd_op_reply((MOSDOpReply *)m);
SimpleMessenger rank;
bool _dispatch(Message *m);
- bool dispatch_impl(Message *m);
+ bool ms_dispatch(Message *m);
Objecter *objecter;
}
-bool RadosClient::dispatch_impl(Message *m)
+bool RadosClient::ms_dispatch(Message *m)
{
bool ret;
-bool MDS::dispatch_impl(Message *m)
+bool MDS::ms_dispatch(Message *m)
{
bool ret;
int get_req_rate() { return req_rate; }
private:
- virtual bool dispatch_impl(Message *m);
+ virtual bool ms_dispatch(Message *m);
public:
MDS(const char *n, Messenger *m, MonClient *mc);
~MDS();
}
-bool MonClient::dispatch_impl(Message *m)
+bool MonClient::ms_dispatch(Message *m)
{
dout(10) << "dispatch " << *m << dendl;
int mounters;
Cond mount_cond, map_cond;
- bool dispatch_impl(Message *m);
+ bool ms_dispatch(Message *m);
void handle_monmap(MMonMap *m);
void ms_handle_reset(const entity_addr_t& peer);
}
-bool Monitor::dispatch_impl(Message *m)
+bool Monitor::ms_dispatch(Message *m)
{
// verify protocol version
if (m->get_orig_source().is_mon() &&
};
private:
- bool dispatch_impl(Message *m);
+ bool ms_dispatch(Message *m);
public:
Monitor(int w, MonitorStore *s, Messenger *m, MonMap *map);
Dispatcher *next;
// how i receive messages
- virtual bool dispatch_impl(Message *m) = 0;
- bool _dispatch(Message *m) {
+ virtual bool ms_dispatch(Message *m) = 0;
+ bool _ms_deliver_dispatch(Message *m) {
bool ret = false;
if (next)
- ret = next->_dispatch(m);
+ ret = next->_ms_deliver_dispatch(m);
if (!ret)
- ret = dispatch_impl(m);
+ ret = ms_dispatch(m);
return ret;
}
public:
- virtual void dispatch(Message *m) {
- if (!_dispatch(m)) {
+ void ms_deliver_dispatch(Message *m) {
+ if (!_ms_deliver_dispatch(m)) {
generic_dout(0) << "unhandled message " << m << " " << *m
<< " from " << m->get_orig_source_inst()
<< dendl;
}
}
+ void ms_deliver_handle_reset(const entity_addr_t& peer) {
+ ms_handle_reset(peer);
+ if (next)
+ next->ms_handle_reset(peer);
+ }
+ void ms_deliver_handle_remote_reset(const entity_addr_t& peer) {
+ ms_handle_remote_reset(peer);
+ if (next)
+ next->ms_handle_remote_reset(peer);
+ }
+ void ms_deliver_handle_failure(Message *m, const entity_addr_t& peer) {
+ ms_handle_failure(m, peer);
+ if (next)
+ next->ms_handle_failure(m, peer);
+ }
+
+
public:
virtual ~Dispatcher() { }
Dispatcher() : next(NULL) { }
// dispatch incoming messages
virtual void dispatch(Message *m) {
assert(dispatcher);
- dispatcher->dispatch(m);
+ dispatcher->ms_deliver_dispatch(m);
}
// shutdown
entity_addr_t a = remote_reset_q.front();
remote_reset_q.pop_front();
lock.Unlock();
- get_dispatcher()->ms_handle_remote_reset(a);
+ get_dispatcher()->ms_deliver_handle_remote_reset(a);
} else if ((long)m == BAD_RESET) {
lock.Lock();
entity_addr_t a = reset_q.front();
reset_q.pop_front();
lock.Unlock();
- get_dispatcher()->ms_handle_reset(a);
+ get_dispatcher()->ms_deliver_handle_reset(a);
} else if ((long)m == BAD_FAILED) {
lock.Lock();
m = failed_q.front().first;
entity_addr_t a = failed_q.front().second;
failed_q.pop_front();
lock.Unlock();
- get_dispatcher()->ms_handle_failure(m, a);
+ get_dispatcher()->ms_deliver_handle_failure(m, a);
m->put();
} else {
dout(1) << "<== " << m->get_source_inst()
return true;
}
-bool OSD::dispatch_impl(Message *m)
+bool OSD::ms_dispatch(Message *m)
{
// verify protocol version
if (m->get_orig_source().is_osd() &&
struct HeartbeatDispatcher : public Dispatcher {
private:
- bool dispatch_impl(Message *m) {
+ bool ms_dispatch(Message *m) {
return osd->heartbeat_dispatch(m);
};
public:
} remove_wq;
private:
- virtual bool dispatch_impl(Message *m);
+ virtual bool ms_dispatch(Message *m);
public:
OSD(int id, Messenger *m, Messenger *hbm, MonClient *mc, const char *dev = 0, const char *jdev = 0);
~OSD();
__u64 received = 0;
class Admin : public Dispatcher {
- bool dispatch_impl(Message *m) {
+ bool ms_dispatch(Message *m) {
//cerr << "got ping from " << m->get_source() << std::endl;
dout(0) << "got ping from " << m->get_source() << dendl;