The IC application is an IDL compiler implemented in Erlang. The IDL compiler generates client stubs and server skeletons. Several back-ends are supported, and they fall into three main groups.
The first group consists of a CORBA back-end:
The second group consists of a simple Erlang back-end:
The third group consists of backends for Erlang, C, and Java. The communication between clients and servers is by the Erlang distribution protocol, facilitated by erl_interface and jinterface for C and Java, respectively.
All back-ends of the third group generate code compatible with the Erlang gen_server behaviour protocol. Thus generated client code corresponds to call() or cast() of an Erlang gen_server. Similarly, generated server code corresponds to handle_call() or handle_cast() of an Erlang gen_server.
The back-ends of the third group are:
The IC compiler is invoked by executing the generic erlc compiler from a shell:
%> erlc +'{be,BackEnd}' File.idl
where BackEnd is according to the table below, and File.idl is the IDL file to be compiled.
Back-end | BackEndoption |
IDL to CORBA | erl_corba |
IDL to CORBA template | erl_template |
IDL to plain Erlang | erl_plain |
IDL to Erlang gen_server | erl_genserv |
IDL to C client | c_client |
IDL to C server | c_server |
IDL to Java | java |
For more details on IC compiler options consult the ic(3) manual page.