-
Type:
Task
-
Resolution: Done
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Networking
-
None
-
Fully Compatible
-
Platforms 13 (04/22/16), Platforms 14 (05/13/16), Platforms 15 (06/03/16)
-
None
-
None
-
None
-
None
-
None
-
None
-
None
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?
- is related to
-
SERVER-23756 Change the definition of MessageHandler::connected()
-
- Closed
-