API Reference
FuseExchangeProtocol
FuseExchangeProtocol.has_service_provider — Functionhas_service_provider(client::Jedis.Client, service_name::String)Checks if there is a provider for a given service
FuseExchangeProtocol.json_pop — Functionjson_pop(client::Jedis.Client, session_id::String, service_name::String, whoami::Symbol; timeout::Float64, error_on_timeout::Bool=true)Pops and deserializes JSON data from a Redis list, using a key derived from sessionid, servicename, and whoami
FuseExchangeProtocol.json_push — Functionjson_push(client::Jedis.Client, session_id::String, service_name::String, whoami::Symbol; data...)Pushes serialized JSON data into a Redis list, using a key derived from sessionid, servicename, and whoami
FuseExchangeProtocol.json_sprint — Functionjson_sprint(data, args...; kw...)Serializes data into a JSON string
FuseExchangeProtocol.negotiate_service — Functionnegotiate_service(client::Jedis.Client, session_id::String, service_name::String)Initializes service negotiation by cleaning up previous keys and publishing a request on a Redis channel
FuseExchangeProtocol.new_client_copy — Functionnew_client_copy(client_in::Jedis.Client)Creates a copy of a Jedis client with the same connection parameters.
FuseExchangeProtocol.raw_pop — Functionraw_pop(client::Jedis.Client, session_id::String, service_name::String, whoami::Symbol; timeout::Float64, error_on_timeout::Bool=true)Pops raw data from a Redis list, key determined by sessionid, servicename, and whoami
FuseExchangeProtocol.raw_push — Functionraw_push(client::Jedis.Client, session_id::String, service_name::String, whoami::Symbol, raw_data::Any)Pushes raw data into a Redis list, key determined by sessionid, servicename, and whoami
FuseExchangeProtocol.register_service — Functionregister_service(client::Jedis.Client, service_name::String, service_function::Function; timeout::Float64=10.0)Registers a service by subscribing to a Redis channel and invoking the service_function when a message is received
The service_function must have the following call signature:
service_function(client::Jedis.Client, session_id::String, service_name::String; timeout::Float64)