Class
JsonrpcClient
since: 3.26
Description [src]
class Jsonrpc.Client : GObject.Object
{
/* No available fields */
}
A client for JSON-RPC communication
The JsonrpcClient
class provides a convenient API to coordinate with a
JSON-RPC server. You can provide the underlying GIOStream
to communicate
with allowing you to control the negotiation of how you setup your
communications channel. One such method might be to use a GSubprocess
and
communicate over stdin and stdout.
Because JSON-RPC allows for out-of-band notifications from the server to
the client, it is important that the consumer of this API calls
jsonrpc_client_close()
or jsonrpc_client_close_async()
when they no longer
need the client. This is because JsonrpcClient
contains an asynchronous
read-loop to process incoming messages. Until jsonrpc_client_close()
or
jsonrpc_client_close_async()
have been called, this read loop will prevent
the object from finalizing (being freed).
To make an RPC call, use jsonrpc_client_call()
or
jsonrpc_client_call_async()
and provide the method name and the parameters
as a GVariant
for call.
It is a programming error to mix synchronous and asynchronous API calls
of the JsonrpcClient
class.
For synchronous calls, JsonrpcClient
will use the thread-default
GMainContext
. If you have special needs here ensure you’ve set the context
before calling into any JsonrpcClient
API.
Available since: 3.26
Instance methods
jsonrpc_client_call_finish
Completes an asynchronous call to jsonrpc_client_call_async()
.
since: 3.26
jsonrpc_client_call_with_id_async
Asynchronously calls method
with params
on the remote peer.
since: 3.30
jsonrpc_client_close
Closes the underlying streams and cancels any inflight operations of the
JsonrpcClient
.
since: 3.26
jsonrpc_client_close_finish
Completes an asynchronous request of jsonrpc_client_close_async()
.
since: 3.26
jsonrpc_client_reply_error_async
Asynchronously replies to the peer, sending a JSON-RPC error message.
since: 3.28
jsonrpc_client_reply_finish
Completes an asynchronous request to jsonrpc_client_reply_async()
.
since: 3.26
jsonrpc_client_send_notification
Synchronously calls method
with params
on the remote peer.
since: 3.26
jsonrpc_client_send_notification_async
Asynchronously calls method
with params
on the remote peer.
since: 3.26
jsonrpc_client_send_notification_finish
Completes an asynchronous call to jsonrpc_client_send_notification_async()
.
since: 3.26
jsonrpc_client_start_listening
This function requests that client start processing incoming messages from the peer.
since: 3.26
Properties
Jsonrpc.Client:io-stream
The “io-stream” property is the GIOStream
to use for communicating
with a JSON-RPC peer.
since: 3.26
Jsonrpc.Client:use-gvariant
The “use-gvariant” property denotes if GVariant
should be used to
communicate with the peer instead of JSON. You should only set this
if you know the peer is also a Jsonrpc-GLib based client.
since: 3.26
Signals
Jsonrpc.Client::failed
The “failed” signal is called when the client has failed communication or the connection has been knowingly closed.
since: 3.28
Jsonrpc.Client::handle-call
This signal is emitted when an RPC has been received from the peer we
are connected to. Return TRUE
if you have handled this message, even
asynchronously. If no handler has returned TRUE
an error will be synthesized.
since: 3.26
Jsonrpc.Client::notification
This signal is emitted when a notification has been received from a
peer. Unlike JsonrpcClient::handle-call
, this does not have an “id”
parameter because notifications do not have ids. They do not round trip.
since: 3.26
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.
Class structure
struct JsonrpcClientClass {
GObjectClass parent_class;
void (* notification) (
JsonrpcClient* self,
const gchar* method_name,
GVariant* params
);
gboolean (* handle_call) (
JsonrpcClient* self,
const gchar* method,
GVariant* id,
GVariant* params
);
void (* failed) (
JsonrpcClient* self
);
gpointer _reserved2;
gpointer _reserved3;
gpointer _reserved4;
gpointer _reserved5;
gpointer _reserved6;
gpointer _reserved7;
gpointer _reserved8;
}
No description available.
Class members
parent_class: GObjectClass
No description available.
notification: void (* notification) ( JsonrpcClient* self, const gchar* method_name, GVariant* params )
No description available.
handle_call: gboolean (* handle_call) ( JsonrpcClient* self, const gchar* method, GVariant* id, GVariant* params )
No description available.
failed: void (* failed) ( JsonrpcClient* self )
No description available.
_reserved2: gpointer
No description available.
_reserved3: gpointer
No description available.
_reserved4: gpointer
No description available.
_reserved5: gpointer
No description available.
_reserved6: gpointer
No description available.
_reserved7: gpointer
No description available.
_reserved8: gpointer
No description available.