Robot Raconteur Core C++ Library
|
RobotRaconteurGen
Utility Robot Raconteur uses Service Definitions to define object types, value types, exceptions, constants, and enums for use with services. See service_definitions for more information. For dynamic languages like Python and MATLAB, these types are handled automatically. For statically compiled languages like C++, Java, and C#, code generation is used to generate "thunk" source that implements the defined types. This "thunk" source must be generated before the program is compiled, and the generated code must be included in the program when it is compiled. The RobotRaconteurGen
utility is used to generate this "thunk" source.
RobotRaconteurGen
generates "thunk" source, and has other capabilities. The mode is selected by the "command" parameter. The valid commands are --thunksource
, --verify-robdef
, --string-table
, --newnodeid
, --md5passwordhash
, --pullservicedef
, and --help
.
RobotRaconteurGen --thunksource
RobotRaconteurGen --thunksource --lang=<target_language> [options] service1.robdef [service2.robdef ...]
Option | Required | Description |
---|---|---|
--lang= | Required | Specify language: cpp , csharp , java |
--import= | Optional, one or more | Import other *.robdef without generating |
--include-path= or -I | Optional, one or more | Add search path for *.robdef files |
--master-header | Optional | Generate a master header file. C++ only |
--outfile= | Optional | Output all generated code to single file. C# only |
The RobotRaconteurGen --thunksource
command is used to generate the thunk source for use with C++, Java, and C#. The desired language is specified using the --lang=
option. Valid options for lang=
are cpp
, csharp
, and java
. One or more service definition *.robdef
files are specified as inputs. The service definitions are verified to make sure that all declared and imported types are valid. If types are used but do not need to be generated, they can be specified with one or more --import=importedservice.robdef
options.
The --include-path=
or -I
option can be used to add search directories for *.robdef
files. More than one --include-path
may be specified. The environmental variable ROBOTRACONTEUR_ROBDEF_PATH
may also be used to specify a search path for *.robdef
files, with each path separated by a semicolon (;) on Windows, and a colon (:) on other operating systems.
The output directory for generated files will be the current working directory. This can be changed using the --outdir=
option. The directory must exist.
For C++, a "master header" can be generated. This master header automatically includes all generated header files, and generateds the ROBOTRACONTEUR_SERVICE_TYPES
macro for use with RobotRaconteurNodeSetup. Use --master-header
flag to enable generating the master header.
For C#, all thunk source can be generated as a single file. Use the --outfile=<filename>
option to specify a filename.
RobotRaconteurGen --verify-robdef
RobotRaconteurGen --verify-robdef [options] service1.robdef [service2.robdef ...]
Option | Required | Description |
---|---|---|
--include-path= or -I | Optional, one or more | Add search path for *.robdef files |
The RobotRaconteurGen --verify-robdef
command is used to verify one or a group of service definition files without generating thunk source.
The --include-path=
or -I
option can be used to add search directories for *.robdef
files. More than one --include-path
may be specified. The environmental variable ROBOTRACONTEUR_ROBDEF_PATH
may also be used to specify a search path for *.robdef
files, with each path separated by a semicolon (;) on Windows, and a colon (:) on other operating systems.
The --import=
is also allowed for compatibility, but since no thunk source is being generated, its use is unnecessary.
RobotRaconteurGen --string-table
RobotRaconteurGen --string-table [options] service1.robdef [service2.robdef ...]
The --string-table
command is used to list all the qualified names defined in the service definitions. This is used to help generate string tables for transports. This is an advanced topic not encountered by most users.
RobotRaconteurGen --newnodeid
RobotRaconteurGen --newnodeid
The --newnodeid
command generates and prints a new random gen 4 UUUID to stdout.
RobotRaconteurGen --md5passwordhash
RobotRaconteurGen --md5passwordhash <password>
Returns the hash of the specified password for use with PasswordFileUserAuthenticator.
RobotRaconteurGen --pullservicedef
RobotRaconteurGen --pullservicedef <url>
The RobotRaconteurGen --pullservicedef
will connect to the specified Robot Raconteur URL and pull the service definition and all imported service definitions of the service specified. The service definitions will be saved to files in the current directory with the .robdef
extension.
RobotRaconteurGen --help
RobotRaconteurGen --help
RobotRaconteurGen --help
Prints out the following help message:
RobotRaconteurGen version 0.10.0 Allowed options: -h [ --help ] print usage message --version print program version --output-dir arg (=.) directory for output --thunksource generate RR thunk source files --verify-robdef verify robdef files --string-table generate string table entries for robdef --newnodeid generate a new NodeID --md5passwordhash hash a password using MD5 algorithm --pullservicedef pull a service definition from a service URL --lang arg language to generate thunk code for -I [ --include-path ] arg include path --import arg input file for use in imports --master-header arg master header file for generated cpp files --outfile arg unified output file (csharp only)