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 |
BackEnd option
|
IDL to CORBA |
erl_corba
|
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.