<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gio" version="2.0"/>
  <include name="Json" version="1.0"/>
  <c:include name="jsonrpc-glib.h"/>
  <namespace name="Jsonrpc"
             version="1.0"
             shared-library=""
             c:identifier-prefixes="Jsonrpc"
             c:symbol-prefixes="jsonrpc">
    <class name="Client"
           c:symbol-prefix="client"
           c:type="JsonrpcClient"
           parent="GObject.Object"
           glib:type-name="JsonrpcClient"
           glib:get-type="jsonrpc_client_get_type"
           glib:type-struct="ClientClass">
      <constructor name="new" c:identifier="jsonrpc_client_new">
        <doc xml:space="preserve">Creates a new #JsonrpcClient instance.

If you want to communicate with a process using stdin/stdout, consider using
#GSubprocess to launch the process and create a #GSimpleIOStream using the
g_subprocess_get_stdin_pipe() and g_subprocess_get_stdout_pipe().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A newly created #JsonrpcClient</doc>
          <type name="Client" c:type="JsonrpcClient*"/>
        </return-value>
        <parameters>
          <parameter name="io_stream" transfer-ownership="none">
            <doc xml:space="preserve">A #GIOStream</doc>
            <type name="Gio.IOStream" c:type="GIOStream*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="error_quark" c:identifier="jsonrpc_client_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
      <virtual-method name="handle_call">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="params" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="notification">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="method_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="params" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="call" c:identifier="jsonrpc_client_call" throws="1">
        <doc xml:space="preserve">Synchronously calls @method with @params on the remote peer.

This function takes ownership of @params.

once a reply has been received, or failure, this function will return.
If successful, @return_value will be set with the reslut field of
the response.

Returns; %TRUE on success; otherwise %FALSE and @error is set.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #JsonrpcClient</doc>
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">the name of the method to call</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="params"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #JsonNode of parameters or %NULL</doc>
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="return_value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve">A location for a #JsonNode.</doc>
            <type name="Json.Node" c:type="JsonNode**"/>
          </parameter>
        </parameters>
      </method>
      <method name="call_async" c:identifier="jsonrpc_client_call_async">
        <doc xml:space="preserve">Asynchronously calls @method with @params on the remote peer.

This function takes ownership of @params.

Upon completion or failure, @callback is executed and it should
call jsonrpc_client_call_finish() to complete the request and release
any memory held.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #JsonrpcClient</doc>
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">the name of the method to call</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="params"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #JsonNode of parameters or %NULL</doc>
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">a callback to executed upon completion</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="call_finish"
              c:identifier="jsonrpc_client_call_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous call to jsonrpc_client_call_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful and @return_value is set, otherwise %FALSE and @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #JsonrpcClient.</doc>
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">A #GAsyncResult provided to the callback in jsonrpc_client_call_async()</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="return_value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1">
            <doc xml:space="preserve">A location for a #JsonNode or %NULL</doc>
            <type name="Json.Node" c:type="JsonNode**"/>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="jsonrpc_client_close" throws="1">
        <doc xml:space="preserve">Closes the underlying streams and cancels any inflight operations of the
#JsonrpcClient. This is important to call when you are done with the
client so that any outstanding operations that have caused @self to
hold additional references are cancelled.

Failure to call this method results in a leak of #JsonrpcClient.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful; otherwise %FALSE and @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #JsonrpcClient</doc>
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="close_async" c:identifier="jsonrpc_client_close_async">
        <doc xml:space="preserve">Asynchronous version of jsonrpc_client_close()

Currently this operation is implemented synchronously, but in the future may
be converted to using asynchronous operations.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #JsonrpcClient.</doc>
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="close_finish"
              c:identifier="jsonrpc_client_close_finish"
              throws="1">
        <doc xml:space="preserve">@self A #JsonrpcClient.
Completes an asynchronous request of jsonrpc_client_close_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful; otherwise %FALSE and @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reply" c:identifier="jsonrpc_client_reply" throws="1">
        <doc xml:space="preserve">Synchronous variant of jsonrpc_client_reply_async().</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="full">
            <doc xml:space="preserve">the id of the message to reply
result: (transfer full) (nullable): the return value or %NULL</doc>
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reply_async" c:identifier="jsonrpc_client_reply_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="reply_finish"
              c:identifier="jsonrpc_client_reply_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_notification"
              c:identifier="jsonrpc_client_send_notification"
              throws="1">
        <doc xml:space="preserve">Synchronously calls @method with @params on the remote peer.
This function will not wait or expect a reply from the peer.

This function takes ownership of @params.

Returns; %TRUE on success; otherwise %FALSE and @error is set.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #JsonrpcClient</doc>
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">the name of the method to call</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="params"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #JsonNode of parameters or %NULL</doc>
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_notification_async"
              c:identifier="jsonrpc_client_send_notification_async">
        <doc xml:space="preserve">Asynchronously calls @method with @params on the remote peer.
This function will not wait or expect a reply from the peer.

This function is useful when the caller wants to be notified that
the bytes have been delivered to the underlying stream. This does
not indicate that the peer has received them.

This function takes ownership of @params.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #JsonrpcClient</doc>
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">the name of the method to call</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="params"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #JsonNode of parameters or %NULL</doc>
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #GCancellable or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_notification_finish"
              c:identifier="jsonrpc_client_send_notification_finish"
              throws="1">
        <doc xml:space="preserve">Completes an asynchronous call to jsonrpc_client_send_notification_async().

Successful completion of this function only indicates that the request
has been written to the underlying buffer, not that the peer has received
the notification.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the bytes have been flushed to the #GIOStream; otherwise
  %FALSE and @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">A #JsonrpcClient</doc>
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_listening"
              c:identifier="jsonrpc_client_start_listening">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="io-stream"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.IOStream"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="handle-call" when="last">
        <doc xml:space="preserve">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.

If you handle the message, you are responsible for replying to
the peer in a timely manner using jsonrpc_client_reply() or
jsonrpc_client_reply_async().</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">the method name</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">The "id" field of the JSONRPC message</doc>
            <type name="Json.Node"/>
          </parameter>
          <parameter name="params" transfer-ownership="none">
            <doc xml:space="preserve">The "params" field of the JSONRPC message</doc>
            <type name="Json.Node"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="notification" when="last">
        <doc xml:space="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="method" transfer-ownership="none">
            <doc xml:space="preserve">the method name of the notification</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="params" transfer-ownership="none">
            <doc xml:space="preserve">params for the notification</doc>
            <type name="Json.Node"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ClientClass"
            c:type="JsonrpcClientClass"
            glib:is-gtype-struct-for="Client">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="notification">
        <callback name="notification">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Client" c:type="JsonrpcClient*"/>
            </parameter>
            <parameter name="method_name" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="params" transfer-ownership="none">
              <type name="Json.Node" c:type="JsonNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="handle_call">
        <callback name="handle_call">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Client" c:type="JsonrpcClient*"/>
            </parameter>
            <parameter name="method" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="Json.Node" c:type="JsonNode*"/>
            </parameter>
            <parameter name="params" transfer-ownership="none">
              <type name="Json.Node" c:type="JsonNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="InputStream"
           c:symbol-prefix="input_stream"
           c:type="JsonrpcInputStream"
           parent="Gio.DataInputStream"
           glib:type-name="JsonrpcInputStream"
           glib:get-type="jsonrpc_input_stream_get_type"
           glib:type-struct="InputStreamClass">
      <implements name="Gio.Seekable"/>
      <constructor name="new" c:identifier="jsonrpc_input_stream_new">
        <return-value transfer-ownership="full">
          <type name="InputStream" c:type="JsonrpcInputStream*"/>
        </return-value>
        <parameters>
          <parameter name="base_stream" transfer-ownership="none">
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="read_message"
              c:identifier="jsonrpc_input_stream_read_message"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="InputStream" c:type="JsonrpcInputStream*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode**"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_message_async"
              c:identifier="jsonrpc_input_stream_read_message_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="InputStream" c:type="JsonrpcInputStream*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_message_finish"
              c:identifier="jsonrpc_input_stream_read_message_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="InputStream" c:type="JsonrpcInputStream*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode**"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gio.DataInputStream" c:type="GDataInputStream"/>
      </field>
    </class>
    <record name="InputStreamClass"
            c:type="JsonrpcInputStreamClass"
            glib:is-gtype-struct-for="InputStream">
      <field name="parent_class">
        <type name="Gio.DataInputStreamClass" c:type="GDataInputStreamClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <constant name="MAJOR_VERSION" value="3" c:type="JSONRPC_MAJOR_VERSION">
      <doc xml:space="preserve">jsonrpc-glib major version component (e.g. 1 if %JSONRPC_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION" value="4" c:type="JSONRPC_MICRO_VERSION">
      <doc xml:space="preserve">jsonrpc-glib micro version component (e.g. 3 if %JSONRPC_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION" value="22" c:type="JSONRPC_MINOR_VERSION">
      <doc xml:space="preserve">jsonrpc-glib minor version component (e.g. 2 if %JSONRPC_VERSION is 1.2.3)</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="OutputStream"
           c:symbol-prefix="output_stream"
           c:type="JsonrpcOutputStream"
           parent="Gio.DataOutputStream"
           glib:type-name="JsonrpcOutputStream"
           glib:get-type="jsonrpc_output_stream_get_type"
           glib:type-struct="OutputStreamClass">
      <implements name="Gio.Seekable"/>
      <constructor name="new" c:identifier="jsonrpc_output_stream_new">
        <return-value transfer-ownership="full">
          <type name="OutputStream" c:type="JsonrpcOutputStream*"/>
        </return-value>
        <parameters>
          <parameter name="base_stream" transfer-ownership="none">
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="write_message"
              c:identifier="jsonrpc_output_stream_write_message"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="OutputStream" c:type="JsonrpcOutputStream*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_message_async"
              c:identifier="jsonrpc_output_stream_write_message_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="OutputStream" c:type="JsonrpcOutputStream*"/>
          </instance-parameter>
          <parameter name="node" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="write_message_finish"
              c:identifier="jsonrpc_output_stream_write_message_finish"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="OutputStream" c:type="JsonrpcOutputStream*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gio.DataOutputStream" c:type="GDataOutputStream"/>
      </field>
    </class>
    <record name="OutputStreamClass"
            c:type="JsonrpcOutputStreamClass"
            glib:is-gtype-struct-for="OutputStream">
      <field name="parent_class">
        <type name="Gio.DataOutputStreamClass"
              c:type="GDataOutputStreamClass"/>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved9">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved10">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved11">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved12">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="Server"
           c:symbol-prefix="server"
           c:type="JsonrpcServer"
           parent="GObject.Object"
           glib:type-name="JsonrpcServer"
           glib:get-type="jsonrpc_server_get_type"
           glib:type-struct="ServerClass">
      <constructor name="new" c:identifier="jsonrpc_server_new">
        <return-value transfer-ownership="full">
          <type name="Server" c:type="JsonrpcServer*"/>
        </return-value>
      </constructor>
      <virtual-method name="handle_call">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Server" c:type="JsonrpcServer*"/>
          </instance-parameter>
          <parameter name="client" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </parameter>
          <parameter name="method" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
          <parameter name="params" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="notification">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Server" c:type="JsonrpcServer*"/>
          </instance-parameter>
          <parameter name="client" transfer-ownership="none">
            <type name="Client" c:type="JsonrpcClient*"/>
          </parameter>
          <parameter name="method" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="params" transfer-ownership="none">
            <type name="Json.Node" c:type="JsonNode*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="accept_io_stream"
              c:identifier="jsonrpc_server_accept_io_stream">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Server" c:type="JsonrpcServer*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="Gio.IOStream" c:type="GIOStream*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="handle-call" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Client"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="Json.Node"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="Json.Node"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="notification" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Client"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="Json.Node"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ServerClass"
            c:type="JsonrpcServerClass"
            glib:is-gtype-struct-for="Server">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="handle_call">
        <callback name="handle_call">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Server" c:type="JsonrpcServer*"/>
            </parameter>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="JsonrpcClient*"/>
            </parameter>
            <parameter name="method" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="Json.Node" c:type="JsonNode*"/>
            </parameter>
            <parameter name="params" transfer-ownership="none">
              <type name="Json.Node" c:type="JsonNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="notification">
        <callback name="notification">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Server" c:type="JsonrpcServer*"/>
            </parameter>
            <parameter name="client" transfer-ownership="none">
              <type name="Client" c:type="JsonrpcClient*"/>
            </parameter>
            <parameter name="method" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="params" transfer-ownership="none">
              <type name="Json.Node" c:type="JsonNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved2">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved3">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved4">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved5">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved6">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved7">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="_reserved8">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <constant name="VERSION_S" value="3.22.4" c:type="JSONRPC_VERSION_S">
      <doc xml:space="preserve">jsonrpc-glib version, encoded as a string, useful for printing and
concatenation.</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
  </namespace>
</repository>
