/usr/lib/swipl/library/ext/json/json_rpc_client.pl
All Application Manual Name SummaryHelp

  • ext
    • json
      • json.pl
      • json_grammar.pl -- JavaScript grammar
      • json_convert.pl
      • json_rpc_server.pl -- JSON RPC Server
      • json_rpc_client.pl -- JSON RPC client
        • json_call/4
        • json_notify/3
        • json_batch/5
        • json_full_duplex/2
      • json_schema.pl -- JSON Schema reader and validator
 json_call(+Stream, +Goal, -Result, +Options) is det
Run Goal on a JSON RPC service identified by Stream and wait for Result. This predicate may be called from multiple threads. As replies come in in arbitrary order, this predicate starts a thread the reads the replies from Stream and informs the calling thread using a Prolog message queue.

If Stream is closed this library terminates the thread and related message queue.

Arguments:
Goal- is a callable term. The functor name is the method. If there is a single argument that is a dict, we invoke a JSON-RPC method using named arguments. If there is a single argument that is a list, use the elements of the list as positional arguments. If there are zero or more than one arguments use these as positional arguments. Examples:
TermMethodTypeJSON (params)

f(#{a:1,b:2})fnamed{"a":1, "b":2}
f(["a", 42])fpositional["a", 42]
f([#{"a":1}])fpositional[{"a":1}]
f()fpositional[]
f("a", 42)fpositional["a", 42]

Options processed: