This repository contains a Service IDL defined in Xtext, and several code generators for C++, Java, .NET and Google Protocol Buffers.
It is currently experimental, and not yet suitable for general use.
Releases of the standalone command line generator are available via GitHub or via Artifactory.
Release of the Eclipse plug-ins are currently not made available as an Eclipse update site. This may change in the future.
See Introduction
Note: All generated C++ code, and the Proxy/Dispatcher/Codec modules generated by the .NET and Java code generators, currently depend on proprietary libraries. These may be made open-source in the future.
Target technology | Main dependency | Supported versions |
---|---|---|
C++ | BTC.CAB.ServiceComm[.SQ] | cpp.servicecomm: 0.10, 0.11, 0.12 |
.NET | BTC.CAB.ServiceComm.NET | dotnet.servicecomm: 0.6, 0.7 |
Java | BTC.CAB.ServiceComm.Java | java.servicecomm: 0.3, 0.5 |
The default version is always the most recent version. An older version may be specified for the command line generator with the -versions
parameter, e.g.
java -jar com.btc.serviceidl.plainjava-1.0.0-SNAPSHOT.jar input.idl -outputPath out -cppProjectSystem cmake -versions cpp.servicecomm=0.10
Currently generated .NET code is targeting .NET Framework version 4.6 or any compatible version.
Configuration of the above-mentioned settings is also possible when using the Eclipse plug-ins, although no UI is provided for that.
Properties files can be placed in parallel to the IDL file, either at directory scope (.generator) or at file scope (foo.idl.generator). If both are present, first the settings from the directory scope properties are applied, and then the settings from the file scope properties, which may override the above.
The output directories cannot be configured via the properties files at the moment.
The command line runner also interprets these files. Command line options override both the directory and file scope properties in that case.
An example file would look like this:
languages = java,cpp
cppProjectSystem = cmake
projectSet = full
versions = cpp.servicecomm=0.10
See the contribution guidelines.
See FAQ.