|
The current definition of MessageHandler::process() is as follows:
/**
|
* Called every time a message comes in. Handler is responsible for responding to client.
|
*/
|
virtual void process(Message& m, AbstractMessagingPort* p) = 0;
|
We would like to change this contract so that the handle does not have to know about an AbstractMessagingPort. A new method might look like this:
using SendMessageFn = stdx::function<void(Message&, Session)>;
|
|
/**
|
* Called every time a message comes in. Handler is responsible for responding to client.
|
*/
|
virtual void process(Message& m, Session session, SendMessageFn reply) = 0;
|
Session objects would be created in PortMessageServer::handleIncomingMessage().
Some questions:
- Can we do this for mongod and mongos separately?
- What information from AbstractMessagingPort needs to go into a Session to make this work?
|