Commit 33e40722 authored by Dominik Charousset's avatar Dominik Charousset

enable copying of response_handle

though it's sematnically wrong, response_handle couldn't be used in
closures otherwise, which makes them quite useless.
parent f6396c3e
......@@ -45,6 +45,8 @@ class message_future {
public:
message_future() = delete;
/**
* @brief Sets @p mexpr as event-handler for the response message.
*/
......@@ -67,6 +69,11 @@ class message_future {
apply(f, std::forward<Expression>(mexpr)...);
}
/**
* @brief Returns the awaited response ID.
*/
inline const message_id_t& id() const { return m_id; }
message_future(const message_future&) = default;
message_future& operator=(const message_future&) = default;
......@@ -74,8 +81,6 @@ class message_future {
inline message_future(const message_id_t& from) : m_id(from) { }
inline const message_id_t& id() const { return m_id; }
# endif
private:
......
......@@ -38,18 +38,17 @@
namespace cppa {
/**
* @brief Identifies a
* @brief Denotes an outstanding response.
*/
class response_handle {
response_handle(const response_handle&) = delete;
response_handle& operator=(const response_handle&) = delete;
public:
response_handle() = default;
response_handle(response_handle&&) = default;
response_handle(const response_handle&) = default;
response_handle& operator=(response_handle&&) = default;
response_handle& operator=(const response_handle&) = default;
response_handle(const actor_ptr& from,
const actor_ptr& to,
......@@ -71,6 +70,21 @@ class response_handle {
*/
void apply(any_tuple response_message);
/**
* @brief Returns the message id for the response message.
*/
inline const message_id_t& response_id() const { return m_id; }
/**
* @brief Returns the actor that is going send the response message.
*/
inline const actor_ptr& sender() const { return m_from; }
/**
* @brief Returns the actor that is waiting for the response message.
*/
inline const actor_ptr& receiver() const { return m_to; }
private:
actor_ptr m_from;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment