Public Types | |
using | result_type = enum{final=0, intermediary} |
using | send_result_fn = std::function< void(const std::shared_ptr< wamp_message > &)> |
Public Member Functions | |
wamp_invocation_impl (wamp_invocation_impl &&)=delete | |
const std::string & | uri () const |
Invocatition procedure URI. More... | |
std::size_t | number_of_arguments () const |
The number of positional arguments passed to the invocation. | |
std::size_t | number_of_kw_arguments () const |
The number of keyword arguments passed to the invocation. | |
template<typename T > | |
T | argument (std::size_t index) const |
The positional argument passed to the invocation with the given index , converted to type T. More... | |
template<typename List > | |
List | arguments () const |
The positional arguments passed to the invocation, converted to a list type. More... | |
template<typename List > | |
void | get_arguments (List &args) const |
Convert and assign the positional arguments to the given args list. More... | |
template<typename... T> | |
void | get_each_argument (T &...args) const |
Convert and assign the positional arguments to a given list of individual parameters. More... | |
template<typename T > | |
T | kw_argument (const std::string &key) const |
The keyword argument passed to the invocation with the given key , converted to type T. More... | |
template<typename T > | |
T | kw_argument (const char *key) const |
template<typename T > | |
T | kw_argument_or (const std::string &key, const T &fallback) const |
The keyword argument passed to the invocation with the given key , converted to type T, or the given fallback if no such key was passed. More... | |
template<typename T > | |
T | kw_argument_or (const char *key, const T &fallback) const |
template<typename Map > | |
Map | kw_arguments () const |
The keyword arguments passed to the invocation, converted to a map type. More... | |
template<typename Map > | |
void | get_kw_arguments (Map &kw_args) const |
Convert and assign the keyword arguments to the given kw_args map. More... | |
template<typename T > | |
T | detail (const std::string &key) const |
The call detail passed to the invocation with the given key , converted to type T. More... | |
template<typename T > | |
T | detail (const char *key) const |
template<typename T > | |
T | detail_or (const std::string &key, const T &fallback) const |
The call detail passed to the invocation with the given key , converted to type T, or the given fallback if no such key was passed. More... | |
template<typename T > | |
T | detail_or (const char *key, const T &fallback) const |
template<typename Map > | |
Map | details () const |
The call details passed to the invocation, converted to a map type. More... | |
template<typename Map > | |
void | get_details (Map &details) const |
Convert and assign the call details to the given details map. More... | |
bool | progressive_results_expected () const |
Checks if caller expects progressive results. | |
void | empty_result () |
Reply to the invocation with an empty result. | |
template<typename List > | |
void | progress (const List &arguments) |
Send progressive/partial result with positional arguments. | |
template<typename List , typename Map > | |
void | progress (const List &arguments, const Map &kw_arguments) |
Send progressive/partial result with positional and keyword arguments. | |
template<typename List > | |
void | result (const List &arguments) |
Reply to the invocation with positional arguments. | |
template<typename List , typename Map > | |
void | result (const List &arguments, const Map &kw_arguments) |
Reply to the invocation with positional and keyword arguments. | |
void | error (const std::string &error_uri) |
Reply to the invocation with an error and no further details. | |
template<typename List > | |
void | error (const std::string &error_uri, const List &arguments) |
Reply to the invocation with an error, including positional arguments. | |
template<typename List , typename Map > | |
void | error (const std::string &error_uri, const List &arguments, const Map &kw_arguments) |
Reply to the invocation with an error, including positional and keyword arguments. | |
void | set_send_result_fn (send_result_fn &&) |
void | set_details (const msgpack::object &details) |
void | set_request_id (std::uint64_t) |
void | set_zone (msgpack::zone &&) |
void | set_arguments (const msgpack::object &arguments) |
void | set_kw_arguments (const msgpack::object &kw_arguments) |
bool | sendable () const |
Detailed Description
Definition at line 46 of file wamp_invocation.hpp.
Member Function Documentation
T autobahn::wamp_invocation_impl::argument | ( | std::size_t | index | ) | const |
The positional argument passed to the invocation with the given index
, converted to type T.
Example: std::string id = invocation->argument<std::string>(0); // first positional argument
- Exceptions
-
std::out_of_range std::bad_cast
List autobahn::wamp_invocation_impl::arguments | ( | ) | const |
The positional arguments passed to the invocation, converted to a list type.
Example: auto args = invocation->arguments<std::tuple<std::string>>();
- Exceptions
-
std::bad_cast
T autobahn::wamp_invocation_impl::detail | ( | const std::string & | key | ) | const |
The call detail passed to the invocation with the given key
, converted to type T.
Overloads are provided for std::string
and char*
as key
type.
This function uses key string comparisons to find the matching value, O(n) with n being the number of map elements. Memory allocation for keys is avoided though. For larger maps, you might want to prioritize look-up performance by using std::map
, std::unordered_map
or custom types with custom deserialization. To do this, use details<Map>() or get_details<Map>(map), then access the items from there.
Example: std::string caller_authid = invocation->detail<std::string>("caller_authid");
- Exceptions
-
std::out_of_range std::bad_cast
T autobahn::wamp_invocation_impl::detail_or | ( | const std::string & | key, |
const T & | fallback | ||
) | const |
The call detail passed to the invocation with the given key
, converted to type T, or the given fallback
if no such key was passed.
Overloads are provided for std::string
and char*
as key
type.
This function uses key string comparisons to find the matching value, O(n) with n being the number of map elements. Memory allocation for keys is avoided though. For larger maps, you might want to prioritize look-up performance by using std::map
, std::unordered_map
or custom types with custom deserialization. To do this, use details<Map>() or get_details<Map>(map), then access the items from there.
Example: std::string caller_authid = invocation->detail_or("caller_authid", std::string());
- Exceptions
-
std::bad_cast
Map autobahn::wamp_invocation_impl::details | ( | ) | const |
The call details passed to the invocation, converted to a map type.
Example: auto kw_args = invocation->details<std::unordered_map<std::string, msgpack::object>>();
- Exceptions
-
std::bad_cast
void autobahn::wamp_invocation_impl::get_arguments | ( | List & | args | ) | const |
Convert and assign the positional arguments to the given args
list.
Example:
- Exceptions
-
std::bad_cast
void autobahn::wamp_invocation_impl::get_details | ( | Map & | details | ) | const |
Convert and assign the call details to the given details
map.
Example:
- Exceptions
-
std::bad_cast
|
inline |
Convert and assign the positional arguments to a given list of individual parameters.
Enables a syntax that lets you declare variables individually, but list them in a single space to empathize parameter order. This will also throw if the number of arguments to the invocation doesn't match the number of given parameters.
Example:
- Exceptions
-
std::bad_cast
void autobahn::wamp_invocation_impl::get_kw_arguments | ( | Map & | kw_args | ) | const |
Convert and assign the keyword arguments to the given kw_args
map.
Example:
- Exceptions
-
std::bad_cast
T autobahn::wamp_invocation_impl::kw_argument | ( | const std::string & | key | ) | const |
The keyword argument passed to the invocation with the given key
, converted to type T.
Overloads are provided for std::string
and char*
as key
type.
This function uses key string comparisons to find the matching value, O(n) with n being the number of map elements. Memory allocation for keys is avoided though. For larger maps, you might want to prioritize look-up performance by using std::map
, std::unordered_map
or custom types with custom deserialization. To do this, use kw_arguments<Map>() or get_kw_arguments<Map>(map), then access the items from there.
Example: std::string id = invocation->kw_argument<std::string>("id");
- Exceptions
-
std::out_of_range std::bad_cast
T autobahn::wamp_invocation_impl::kw_argument_or | ( | const std::string & | key, |
const T & | fallback | ||
) | const |
The keyword argument passed to the invocation with the given key
, converted to type T, or the given fallback
if no such key was passed.
Overloads are provided for std::string
and char*
as key
type.
This function uses key string comparisons to find the matching value, O(n) with n being the number of map elements. Memory allocation for keys is avoided though. For larger maps, you might want to prioritize look-up performance by using std::map
, std::unordered_map
or custom types with custom deserialization. To do this, use kw_arguments<Map>() or get_kw_arguments<Map>(map), then access the items from there.
Example: std::string id = invocation->kw_argument_or("id", std::string());
- Exceptions
-
std::bad_cast
Map autobahn::wamp_invocation_impl::kw_arguments | ( | ) | const |
The keyword arguments passed to the invocation, converted to a map type.
Example: auto kw_args = invocation->kw_arguments<std::unordered_map<std::string, msgpack::object>>();
- Exceptions
-
std::bad_cast
const std::string& autobahn::wamp_invocation_impl::uri | ( | ) | const |
Invocatition procedure URI.
Used by prefix & wildcard registered procedures