... | ... | @@ -75,3 +75,35 @@ Indeed in that case it is better to setup a requester/responder communication to |
|
|
|
|
|
If you need to setup a request/response mechanism between different apps then use the provided requester/responder communication pattern.
|
|
|
|
|
|
An example of a responder in a C++ application:
|
|
|
```cpp
|
|
|
// Define a responder.
|
|
|
std::unique_ptr<coms::Responder> responder;
|
|
|
|
|
|
try {
|
|
|
// Create the responder with name "the-responder".
|
|
|
responder = coms::Responder::create("the-responder");
|
|
|
|
|
|
std::cout << "Created responder " << *responder << std::endl;
|
|
|
}
|
|
|
catch (const coms::ResponderCreationException& e) {
|
|
|
std::cout << "Responder error" << std::endl;
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
// Loop on the requests.
|
|
|
while (true) {
|
|
|
// Receive the simple request.
|
|
|
std::unique_ptr<coms::Request> request = responder->receive();
|
|
|
if (!request) {
|
|
|
std::cout << "Responder is canceled" << std::endl;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// Print the request data as string.
|
|
|
std::cout << "Received request " << request->get() << std::endl;
|
|
|
|
|
|
// Reply a string to the requester.
|
|
|
request->reply("done");
|
|
|
}
|
|
|
``` |
|
|
\ No newline at end of file |