$CIAO_ROOT/examples/Hello
.Hello_Base.idl
) which contains
all the interfaces and events common to all the components. The
reason we do this is becuse the generated lib of this idl file
will be linked in by all the components in the system. To reduce
the size of the component lib we have to include only the necesary
part. In this example, we have an eventtype timeout
and an interface ReadMessage
, which are used by both
the Sender and the Receiver, so we put both of them in
Hello.idl.
Hello_Base.mpc
file to get an idea how
the Hello_Base_stub and Hello_Base_svnt projects are organized. MPC is a utility we used to generate makefiles or VC project/solution files for all ACE, TAO and CIAO libraries.
$CIAO_ROOT/bin/generate_component_mpc.pl -p Hello_Base Sender
$$CIAO_ROOT/bin/generate_component_mpc.pl -p Hello_Base Receiver
Note:
"Hello_Base", "Sender", "Receiver"
respectively._stub
project, add:"libs += Hello_Base_stub"
trigger
specific to the
Sender. Please note that the Sender component
"supports"
(IDL keyword) this interface.
_exec.h
and _exec.cpp
files
which actually implement the component.
starter
. The
starter
will make a invocation on a supported interface
called trigger
on the Sender component to get the whole
distributed application started. The starter
will first
the Sender component object reference through the ior string. Please
see the the last part of Hello/Sender/Sender.mpc
file for
details.
$CIAO_ROOT/examples/Hello
and do:$ACE_ROOT/bin/mwc.pl
(use -type option if you are
using a compiler/IDE other than gnuace -which by default generates
GNU makefiles)$ACE_ROOT/bin/mwc.pl -type vc71
if you are using Visual C++ 7.1 IDE.
uuidgen
to generate the UUIDs
Note: Please pay attention to the inter-relationship among different files, especially the relationship between the .cad file and idl file.
./descriptors
directory: ./run_test_default.pl
dose the following for you.
${CIAO_ROOT}/tools/Daemon/CIAO_Daemon -ORBEndpoint iiop://localhost:20000 -n ${CIAO_ROOT}/tools/ComponentServer/ComponentServer
${CIAO_ROOT}/tools/Assembly_Deployer/Assembly_Manager -o ior -c test.dat
${CIAO_ROOT}/tools/Assembly_Deployer/Assembly_Deployer -k file://ior -a default.cad
../Sender/starter
Note: you can repeat this step../descriptors
directory: ./run_test_remote.pl
dose the following for you.
${CIAO_ROOT}/tools/Daemon/CIAO_Daemon -ORBEndpoint iiop://localhost:20000 -n ${CIAO_ROOT}/tools/ComponentServer/ComponentServer
${CIAO_ROOT}/tools/Daemon/CIAO_Daemon -ORBEndpoint iiop://localhost:12000 -n ${CIAO_ROOT}/tools/ComponentServer/ComponentServer
${CIAO_ROOT}/tools/Assembly_Deployer/Assembly_Manager -o ior -c test.dat
${CIAO_ROOT}/tools/Assembly_Deployer/Assembly_Deployer -k file://ior -a remote.cad
../Sender/starter
Note: you can repeat this step../descriptors
directory:${CIAO_ROOT}/tools/Daemon/CIAO_Daemon -ORBEndpoint iiop://URL:20000 -n ${CIAO_ROOT}/tools/ComponentServer/ComponentServer
${CIAO_ROOT}/tools/Daemon/CIAO_Daemon -ORBEndpoint iiop://URL:12000 -n ${CIAO_ROOT}/tools/ComponentServer/ComponentServer
${CIAO_ROOT}/tools/Assembly_Deployer/Assembly_Manager -o ior -c test.dat
${CIAO_ROOT}/tools/Assembly_Deployer/Assembly_Deployer -k file://ior -a remote.cad
Default
one.
../Sender/starter
Note: you can repeat this step../descriptors
directory: ./run_test_multirecv.pl