Copyright © 2013-2015 Michael Truog
Version: 1.5.0 Dec 23 2015 13:50:35 ------------------------------------------------------------------------
This module defines the service behaviour.
Required callback functions: service_config/0, service_init/4, service_request/3, service_info/3, service_terminate/3.
Authors: Michael Truog (mjtruog [at] gmail (dot) com).
The user module should export:
service_init(Args, Prefix, Timeout, Dispatcher)
==> {ok, State}
{stop, Reason}
{stop, Reason, State}
service_request(ServiceReq, State, Dispatcher)
==> {reply, Response, NewState}
{reply, ResponseInfo, Response, NewState}
{forward, NextServiceReq, NewState}
{noreply, NewState}
{stop, Reason, NewState}
Reason = normal | shutdown | Term terminate(State) is called
service_info(Request, State, Dispatcher)
==> {noreply, State}
{stop, Reason, NewState}
Reason = normal | shutdown | Term, terminate(State) is called
service_terminate(Reason, Timeout, State) Let the user module clean up
always called when the service terminates
==> ok
The work flow (of the service) can be described as follows:
User module Generic
----------- -------
service_init <----- .
loop
service_request <----- .
-----> reply
service_info <----- .
service_terminate <----- .
dict_proxy(Key, Value) = dict:dict(Key, Value)
dispatcher() = cloudi_service:dispatcher()
key_values() = cloudi_service:key_values()
pattern_pid() = cloudi_service:pattern_pid()
priority() = cloudi_service:priority()
request() = cloudi_service:request()
request_info() = cloudi_service:request_info()
request_type() = cloudi_service:request_type()
response() = cloudi_service:response()
response_info() = cloudi_service:response_info()
service_name() = cloudi_service:service_name()
service_name_pattern() = cloudi_service:service_name_pattern()
service_req() = #service_req{type = undefined | cloudi_service:request_type(), name = undefined | cloudi_service:service_name(), pattern = undefined | cloudi_service:service_name_pattern(), request_info = undefined | cloudi_service:request_info(), request = undefined | cloudi_service:request(), timeout = undefined | cloudi_service:timeout_milliseconds(), priority = undefined | cloudi_service:priority(), trans_id = undefined | cloudi_service:trans_id(), pid = undefined | cloudi_service:source() | cloudi_service:pattern_pid()}
source() = cloudi_service:source()
timeout_milliseconds() = cloudi_service:timeout_milliseconds()
trans_id() = cloudi_service:trans_id()
'Module:service_info'(Request::any(), State::any(), Dispatcher::cloudi_service:dispatcher()) -> {noreply, NewState::any()} | {stop, Reason::any(), NewState::any()}
'Module:service_init'(Args::list(), Prefix::cloudi_service:service_name_pattern(), Timeout::cloudi_service_api:timeout_milliseconds(), Dispatcher::cloudi_service:dispatcher()) -> {ok, State::any()} | {stop, Reason::any()} | {stop, Reason::any(), State::any()}
'Module:service_request'(ServiceReq::service_req(), State::any(), Dispatcher::cloudi_service:dispatcher()) -> {reply, Response::cloudi_service:response(), NewState::any()} | {reply, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), NewState::any()} | {forward, NextServiceReq::service_req(), NewState::any()} | {noreply, NewState::any()} | {stop, Reason::any(), NewState::any()}
'Module:service_terminate'(Reason::any(), Timeout::cloudi_service_api:timeout_milliseconds(), State::any()) -> ok
add(Module::module()) -> {ok, ServiceId::cloudi_service_api:service_id()} | {error, any()}
add(Module::module(), Timeout::cloudi_service_api:timeout_milliseconds() | infinity) -> {ok, ServiceId::cloudi_service_api:service_id()} | {error, any()}
context_options(Dispatcher::cloudi_service:dispatcher()) -> cloudi:options()
destination_refresh_immediate(Context::cloudi_service:dispatcher()) -> boolean()
destination_refresh_lazy(Context::cloudi_service:dispatcher()) -> boolean()
forward(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> no_return()
forward(Dispatcher::cloudi_service:dispatcher(), Type::cloudi_service:request_type(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds(), Priority::cloudi_service:priority(), TransId::cloudi_service:trans_id(), Pid::pid()) -> no_return()
forward_async(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> no_return()
forward_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds(), Priority::cloudi_service:priority(), TransId::cloudi_service:trans_id(), Pid::pid()) -> no_return()
forward_sync(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> no_return()
forward_sync(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds(), Priority::cloudi_service:priority(), TransId::cloudi_service:trans_id(), Pid::pid()) -> no_return()
get_pid(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name()) -> {ok, PatternPid::cloudi_service:pattern_pid()} | {error, Reason::atom()}
get_pid(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, PatternPid::cloudi_service:pattern_pid()} | {error, Reason::atom()}
get_pids(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name()) -> {ok, PatternPids::[cloudi_service:pattern_pid()]} | {error, Reason::atom()}
get_pids(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, PatternPids::[cloudi_service:pattern_pid()]} | {error, Reason::atom()}
key_value_erase(Key::any(), KeyValues::cloudi_service:key_values()) -> NewKeyValues::cloudi_service:key_values()
This function is deprecated: Use cloudi_key_value:erase/2 instead
key_value_find(Key::any(), KeyValues::cloudi_service:key_values()) -> {ok, Value::any()} | error
This function is deprecated: Use cloudi_key_value:find/2 instead
key_value_store(Key::any(), Value::any(), KeyValues::cloudi_service:key_values()) -> NewKeyValues::cloudi_service:key_values()
This function is deprecated: Use cloudi_key_value:store/3 instead
mcast_async(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
mcast_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request()) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
mcast_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
mcast_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
mcast_async_active(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
mcast_async_active(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request()) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
mcast_async_active(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
mcast_async_active(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
mcast_async_passive(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> {ok, TransId::[cloudi_service:trans_id()]} | {error, Reason::atom()}
mcast_async_passive(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request()) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
mcast_async_passive(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
mcast_async_passive(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined) -> {ok, TransIdList::[cloudi_service:trans_id()]} | {error, Reason::atom()}
prefix(Dispatcher::cloudi_service:dispatcher()) -> Prefix::cloudi_service:service_name_pattern()
priority_default(Context::cloudi_service:dispatcher()) -> PriorityDefault::cloudi_service_api:priority()
process_index(Dispatcher::cloudi_service:dispatcher()) -> ProcessIndex::non_neg_integer()
recv_async(Dispatcher::cloudi_service:dispatcher()) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
recv_async(Dispatcher::cloudi_service:dispatcher(), Param1::cloudi_service:timeout_milliseconds() | cloudi_service:trans_id()) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
recv_async(Dispatcher::cloudi_service:dispatcher(), Param1::cloudi_service:timeout_milliseconds() | cloudi_service:trans_id(), Param2::cloudi_service:trans_id() | boolean()) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
recv_async(Dispatcher::cloudi_service:dispatcher(), Timeout::cloudi_service:timeout_milliseconds(), TransId::cloudi_service:trans_id(), Consume::boolean()) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
recv_asyncs(Dispatcher::cloudi_service:dispatcher(), TransIdList::[cloudi_service:trans_id()]) -> {ok, [{ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), TransId::cloudi_service:trans_id()}]} | {error, Reason::atom()}
recv_asyncs(Dispatcher::cloudi_service:dispatcher(), Timeout::cloudi_service:timeout_milliseconds() | undefined, TransIdList::[cloudi_service:trans_id()]) -> {ok, [{ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), TransId::cloudi_service:trans_id()}]} | {error, Reason::atom()}
recv_asyncs(Dispatcher::cloudi_service:dispatcher(), Timeout::cloudi_service:timeout_milliseconds(), TransIdList::[cloudi_service:trans_id()], Consume::boolean()) -> {ok, [{ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), TransId::cloudi_service:trans_id()}]} | {error, Reason::atom()}
remove(ServiceId::cloudi_service_api:service_id()) -> ok | {error, any()}
remove(ServiceId::cloudi_service_api:service_id(), Timeout::cloudi_service_api:timeout_milliseconds() | infinity) -> ok | {error, any()}
request_http_qs_parse(Request::binary()) -> Result::dict_proxy(binary(), binary())
This function is deprecated: Use cloudi_request:http_qs_parse/1 instead
request_info_key_value_new(RequestInfo::cloudi_service:key_values()) -> Result::binary()
This function is deprecated: Use cloudi_request_info:key_value_new/1 instead
request_info_key_value_parse(RequestInfo::binary() | list()) -> Result::dict_proxy(any(), any())
This function is deprecated: Use cloudi_request_info:key_value_parse/1 instead
return(Dispatcher::cloudi_service:dispatcher(), Response::cloudi_service:response()) -> no_return()
return(Dispatcher::cloudi_service:dispatcher(), ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()) -> no_return()
return(Dispatcher::cloudi_service:dispatcher(), Type::cloudi_service:request_type(), Name::cloudi_service:service_name(), Pattern::cloudi_service:service_name_pattern(), ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), Timeout::cloudi_service:timeout_milliseconds(), TransId::cloudi_service:trans_id(), Pid::pid()) -> no_return()
return_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Pattern::cloudi_service:service_name_pattern(), ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), Timeout::cloudi_service:timeout_milliseconds(), TransId::cloudi_service:trans_id(), Pid::pid()) -> no_return()
return_nothrow(Dispatcher::cloudi_service:dispatcher(), Response::cloudi_service:response(), ServiceReq::service_req()) -> ok
return_nothrow(Dispatcher::cloudi_service:dispatcher(), ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), ServiceReq::service_req()) -> ok
return_nothrow(Dispatcher::cloudi_service:dispatcher(), Type::cloudi_service:request_type(), Name::cloudi_service:service_name(), Pattern::cloudi_service:service_name_pattern(), ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), Timeout::cloudi_service:timeout_milliseconds(), TransId::cloudi_service:trans_id(), Pid::pid()) -> ok
return_sync(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Pattern::cloudi_service:service_name_pattern(), ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response(), Timeout::cloudi_service:timeout_milliseconds(), TransId::cloudi_service:trans_id(), Pid::pid()) -> no_return()
self(Dispatcher::cloudi_service:dispatcher()) -> Self::pid()
send(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request()) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, PatternPid::cloudi_service:pattern_pid() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined, PatternPid::cloudi_service:pattern_pid() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async_active(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
send_async_active(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request()) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
send_async_active(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
send_async_active(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, PatternPid::cloudi_service:pattern_pid() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
send_async_active(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
send_async_active(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined, PatternPid::cloudi_service:pattern_pid() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
#return_async_active{} (or) #timeout_async_active{}
send_async_passive(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async_passive(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request()) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async_passive(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async_passive(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, PatternPid::cloudi_service:pattern_pid() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async_passive(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_async_passive(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined, PatternPid::cloudi_service:pattern_pid() | undefined) -> {ok, TransId::cloudi_service:trans_id()} | {error, Reason::atom()}
send_sync(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()} | {ok, Response::cloudi_service:response()} | {error, Reason::atom()}
send_sync(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request()) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()} | {ok, Response::cloudi_service:response()} | {error, Reason::atom()}
send_sync(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()} | {ok, Response::cloudi_service:response()} | {error, Reason::atom()}
send_sync(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, PatternPid::cloudi_service:pattern_pid() | undefined) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()} | {ok, Response::cloudi_service:response()} | {error, Reason::atom()}
send_sync(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()} | {ok, Response::cloudi_service:response()} | {error, Reason::atom()}
send_sync(Dispatcher::cloudi_service:dispatcher(), Name::cloudi_service:service_name(), RequestInfo::cloudi_service:request_info(), Request::cloudi_service:request(), Timeout::cloudi_service:timeout_milliseconds() | undefined, Priority::cloudi_service:priority() | undefined, PatternPid::cloudi_service:pattern_pid() | undefined) -> {ok, ResponseInfo::cloudi_service:response_info(), Response::cloudi_service:response()} | {ok, Response::cloudi_service:response()} | {error, Reason::atom()}
service_name_parse(Name::string(), Pattern::string()) -> [string()] | error
This function is deprecated: Use cloudi_service_name:parse/2 instead
service_name_parse_with_suffix(Name::string(), Pattern::string()) -> {[string()], string()} | error
This function is deprecated: Use cloudi_service_name:parse_with_suffix/2 instead
source_subscriptions(Dispatcher::cloudi_service:dispatcher(), ServiceReq::service_req()) -> [cloudi_service:service_name_pattern()]
subscribe(Dispatcher::cloudi_service:dispatcher(), Pattern::cloudi_service:service_name_pattern()) -> ok
suffix(Dispatcher::cloudi_service:dispatcher(), NameOrPattern::cloudi_service:service_name() | cloudi_service:service_name_pattern()) -> Suffix::cloudi_service:service_name() | cloudi_service:service_name_pattern()
timeout_async(Dispatcher::cloudi_service:dispatcher()) -> TimeoutAsync::cloudi_service_api:timeout_milliseconds()
timeout_max(Context::cloudi_service:dispatcher()) -> TimeoutMax::cloudi_service_api:timeout_milliseconds()
timeout_sync(Dispatcher::cloudi_service:dispatcher()) -> TimeoutSync::cloudi_service_api:timeout_milliseconds()
trans_id(Dispatcher::cloudi_service:dispatcher()) -> trans_id()
trans_id_age(TransId::trans_id()) -> non_neg_integer()
unsubscribe(Dispatcher::cloudi_service:dispatcher(), Pattern::cloudi_service:service_name_pattern()) -> ok | error
Generated by EDoc, Dec 23 2015, 13:50:35.