Details
-
Task
-
Resolution: Done
-
Major - P3
-
None
-
None
-
None
-
Fully Compatible
-
Platforms 13 (04/22/16), Platforms 14 (05/13/16), Platforms 15 (06/03/16)
Description
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?
Attachments
Issue Links
- is related to
-
SERVER-23756 Change the definition of MessageHandler::connected()
-
- Closed
-