Usage for Corba controlled execution of Vic ******************************************* The file Viciface.idl holds the IDL interface. The interface has methods start and stop. Their implementations are in viciface_impl.cpp. Start method fork()s and exec()s Vic. Stop method send a SIGINT signal to Vic which is handled by Vic's internal signal handler. Vic quits after catching the signal. Client.cpp and server.cpp hold the implementations for the client and the server respectively. Naming service is used so you must have nsserv running and pass the naming reference in command line arguments. You must have the executables viccl and vicsv in the same directory as the Corba executables because exec() calls them from ./ . Compilation: If the .idl file hasn't been compiled: [iines sov]$ idl viciface.idl Otherwise just: [iines sov]$ make Running: (Notice that vicsv and client must be running in different machines. The reason for this is Vic and the problem is under further study.) 1. Vic server [hessu sov]$ ./server -ORBnaming `cat /PATH/Naming.ior` // Corba server 2. server [iines sov]$ ./vicsv // Vic server 3. client [iines sov]$ ./client -ORBnaming `cat /PATH/Naming.ior` HESSU_ATM_ADDRESS_HERE // exec()s Vic client Explanation: The Corba server running in hessu exec()s the Vic client in hessu. Vic server is running already in iines. Client can be running basically anywhere in the network. After the client sends start to the server viccl is started and tries to connect to the address supplied in the command line. (Note that Linux ATM signalling is used here and the network side must started on the machine that vicsv is started.) (Note something seems to be changed since vic was first modified to run on ATM). With the CORBA implementation the following start order of programs is necessary: - vicsv runs in iines (atmsigd -N on iines) - corba server runs in hessu (i.e. client starts in hessu) - corba client runs in anywhere in the net with the destination address parameter set to iines' ATM address