jsonrpcstub

man(1)                       jsonrpcstub man page                       man(1)



NAME
       jsonrpcstub - genearate stubs for the libjson-rpc-cpp framework.

SYNOPSIS
       jsonrpcstub specfile.json [--cpp-server=namespace::ClassName]
        [--cpp-server-file=classqname.h]  [--cpp-client=namespace::ClassName]
       [--cpp-client-file=classname.h] [--js-client=ClassName] [--js-client-
       file=classname.js]  [--py-client=ClassName]
       [--py-client-file=classname.py] [-h] [-v] [--version]

DESCRIPTION
       jsonrpcstub is a tool to generate C++, JavaScript, and Python classes
       from a procedure specification file.

   SPECIFICATION SYNTAX
       The specifictaion file is a JSON file containing all available JSON-RPC
       methods and notifications with their corresponding parameters and
       return values contained in a top-level JSON array.

       [
            {
                 "name": "method_with_positional_params",
                 "params": [3,4],
                 "returns": 7
            },
            {
                 "name": "method_with_named_params",
                 "params": {"param1": 3, "param2": 4},
                 "returns": 7
            },
            {
                 "name": "notification_without_parmas"
            }
       ]


       The literal in each "params" and  "returns" section defines the
       corresponding type.  If the "params" contains an array, the parameters
       are accepted by position, if it contains an object, they are accepted
       by name.


OPTIONS
       -h     Print usage information.

       -v     Print verbose information during generation.

       --version
              Print version info and exit.

       --cpp-server=ClassName
              Creates a Abstract Server class. Namespaces can be provided
              using the :: notation (e.g. ns1::ns2::Classname).

       --cpp-server-file=filename.h
              Defines the filename to use when generating the C++ Abstract
              Server class.  If this is not provided, the lowercase classname
              is used.

       --cpp-client=ClassName
              Creates a C++ client class. Namespaces can be provided using the
              :: notation (e.g. ns1::ns2::Classname).

       --cpp-client-file=filename.h
              Defines the filename to use when generating the C++ client
              class.  If this is not provided, the lowercase classname is
              used.

       --js-client=ClassName
              Creates a JavaScript client class. No namespaces are supported
              in this option.

       --js-client-file=filename.js
              Defines the filename to use when generating the JavaScript
              client class.

       --py-client=ClassName
              Creates a Python client class. No namespaces are supported in
              this option.

       --py-client-file=filename.py
              Defines the filename to use when generating the Python client
              class.  If this is not provided, the lowercase classname is
              used.


EXAMPLES
       Generate C++ Stubs for Server and Client, the classes will be named
       AbstractStubServer and StubClient:

              jsonrpcstub spec.json --cpp-server=AbstractStubServer
              --cpp-client=StubClient

       Generate JavaScript Client class MyRpcClient into file someclient.js:

              jsonrpcstub spec.json --js-client=MyRpcClient
              --js-client-file=someclient.js

       Generate Python client class StubClient, which will be saved into
       stubclient.py

              jsonrpcstub spec.json --py-client=StubClient

EXIT STATUS
       This command returns 0 if no error occurred. In any other case, it
       returns 1.

SEE ALSO
       https://github.com/cinemast/libjson-rpc-cpp

BUGS
       No known bugs. Please report found bugs as an issue on github or send
       me an email.


COPYRIGHT
       Copyright (C) 2011-2017 Peter Spiess-Knafl

       Permission is hereby granted, free of charge, to any person obtaining a
       copy of this software and associated documentation files (the
       "Software"), to deal in the Software without restriction, including
       without limitation the rights to use, copy, modify, merge, publish,
       distribute, sublicense, and/or sell copies of the Software, and to
       permit persons to whom the Software is furnished to do so, subject to
       the following conditions:

       The above copyright notice and this permission notice shall be included
       in all copies or substantial portions of the Software.

       THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
       OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
       MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
       IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
       CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
       TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
       SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


AUTHOR
       Peter Spiess-Knafl (dev@spiessknafl.at)



1.0.0                            22 April 2017                          man(1)