#define CEPH_MESSENGER_H
#include <map>
+#include <deque>
#include "Message.h"
#include "Dispatcher.h"
class Messenger {
private:
- list<Dispatcher*> dispatchers;
- list <Dispatcher*> fast_dispatchers;
+ std::deque<Dispatcher*> dispatchers;
+ std::deque<Dispatcher*> fast_dispatchers;
ZTracer::Endpoint trace_endpoint;
protected:
*
* @param m The Message we are testing.
*/
- bool ms_can_fast_dispatch(const Message *m) {
- for (list<Dispatcher*>::iterator p = fast_dispatchers.begin();
- p != fast_dispatchers.end();
- ++p) {
- if ((*p)->ms_can_fast_dispatch(m))
+ bool ms_can_fast_dispatch(const Message* m) {
+ for (const auto &dispatcher : fast_dispatchers) {
+ if (dispatcher->ms_can_fast_dispatch(m))
return true;
}
return false;
* of one reference to it.
* If none of our Dispatchers can handle it, ceph_abort().
*/
- void ms_fast_dispatch(Message *m) {
+ void ms_fast_dispatch(Message* m) {
m->set_dispatch_stamp(ceph_clock_now());
- for (list<Dispatcher*>::iterator p = fast_dispatchers.begin();
- p != fast_dispatchers.end();
- ++p) {
- if ((*p)->ms_can_fast_dispatch(m)) {
- (*p)->ms_fast_dispatch(m);
+ for (const auto &dispatcher : fast_dispatchers) {
+ if (dispatcher->ms_can_fast_dispatch(m)) {
+ dispatcher->ms_fast_dispatch(m);
return;
}
}
/**
*
*/
- void ms_fast_preprocess(Message *m) {
- for (list<Dispatcher*>::iterator p = fast_dispatchers.begin();
- p != fast_dispatchers.end();
- ++p) {
- (*p)->ms_fast_preprocess(m);
+ void ms_fast_preprocess(Message* m) {
+ for (const auto &dispatcher : fast_dispatchers) {
+ dispatcher->ms_fast_preprocess(m);
}
}
/**
* @param m The Message to deliver. We take ownership of
* one reference to it.
*/
- void ms_deliver_dispatch(Message *m) {
+ void ms_deliver_dispatch(Message* m) {
m->set_dispatch_stamp(ceph_clock_now());
- for (list<Dispatcher*>::iterator p = dispatchers.begin();
- p != dispatchers.end();
- ++p) {
- if ((*p)->ms_dispatch(m))
+ for (const auto &dispatcher : dispatchers) {
+ if (dispatcher->ms_dispatch(m))
return;
}
lsubdout(cct, ms, 0) << "ms_deliver_dispatch: unhandled message " << m << " " << *m << " from "
* @param con Pointer to the new Connection.
*/
void ms_deliver_handle_connect(Connection *con) {
- for (list<Dispatcher*>::iterator p = dispatchers.begin();
- p != dispatchers.end();
- ++p)
- (*p)->ms_handle_connect(con);
+ for (const auto& dispatcher : dispatchers) {
+ dispatcher->ms_handle_connect(con);
+ }
}
/**
* @param con Pointer to the new Connection.
*/
void ms_deliver_handle_fast_connect(Connection *con) {
- for (list<Dispatcher*>::iterator p = fast_dispatchers.begin();
- p != fast_dispatchers.end();
- ++p)
- (*p)->ms_handle_fast_connect(con);
+ for (const auto& dispatcher : fast_dispatchers) {
+ dispatcher->ms_handle_fast_connect(con);
+ }
}
/**
* @param con Pointer to the new Connection.
*/
void ms_deliver_handle_accept(Connection *con) {
- for (list<Dispatcher*>::iterator p = dispatchers.begin();
- p != dispatchers.end();
- ++p)
- (*p)->ms_handle_accept(con);
+ for (const auto& dispatcher : dispatchers) {
+ dispatcher->ms_handle_accept(con);
+ }
}
/**
* @param con Pointer to the new Connection.
*/
void ms_deliver_handle_fast_accept(Connection *con) {
- for (list<Dispatcher*>::iterator p = fast_dispatchers.begin();
- p != fast_dispatchers.end();
- ++p)
- (*p)->ms_handle_fast_accept(con);
+ for (const auto& dispatcher : fast_dispatchers) {
+ dispatcher->ms_handle_fast_accept(con);
+ }
}
/**
* @param con Pointer to the broken Connection.
*/
void ms_deliver_handle_reset(Connection *con) {
- for (list<Dispatcher*>::iterator p = dispatchers.begin();
- p != dispatchers.end();
- ++p) {
- if ((*p)->ms_handle_reset(con))
+ for (const auto& dispatcher : dispatchers) {
+ if (dispatcher->ms_handle_reset(con))
return;
}
}
* @param con Pointer to the broken Connection.
*/
void ms_deliver_handle_remote_reset(Connection *con) {
- for (list<Dispatcher*>::iterator p = dispatchers.begin();
- p != dispatchers.end();
- ++p)
- (*p)->ms_handle_remote_reset(con);
+ for (const auto& dispatcher : dispatchers) {
+ dispatcher->ms_handle_remote_reset(con);
+ }
}
/**
* @param con Pointer to the broken Connection.
*/
void ms_deliver_handle_refused(Connection *con) {
- for (list<Dispatcher*>::iterator p = dispatchers.begin();
- p != dispatchers.end();
- ++p) {
- if ((*p)->ms_handle_refused(con))
+ for (const auto& dispatcher : dispatchers) {
+ if (dispatcher->ms_handle_refused(con))
return;
}
}
*/
AuthAuthorizer *ms_deliver_get_authorizer(int peer_type, bool force_new) {
AuthAuthorizer *a = 0;
- for (list<Dispatcher*>::iterator p = dispatchers.begin();
- p != dispatchers.end();
- ++p) {
- if ((*p)->ms_get_authorizer(peer_type, &a, force_new))
+ for (const auto& dispatcher : dispatchers) {
+ if (dispatcher->ms_get_authorizer(peer_type, &a, force_new))
return a;
}
return NULL;
int protocol, bufferlist& authorizer, bufferlist& authorizer_reply,
bool& isvalid, CryptoKey& session_key,
std::unique_ptr<AuthAuthorizerChallenge> *challenge) {
- for (list<Dispatcher*>::iterator p = dispatchers.begin();
- p != dispatchers.end();
- ++p) {
- if ((*p)->ms_verify_authorizer(con, peer_type, protocol, authorizer, authorizer_reply,
- isvalid, session_key, challenge))
+ for (const auto& dispatcher : dispatchers) {
+ if (dispatcher->ms_verify_authorizer(con, peer_type, protocol, authorizer, authorizer_reply,
+ isvalid, session_key, challenge))
return true;
}
return false;