#!/bin/sh
clear
echo Starting in `pwd`

LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
SHLIB_PATH=.:$SHLIB_PATH
LIBPATH=.:$LIBPATH
export LD_LIBRARY_PATH SHLIB_PATH LIBPATH

PATH=../../../idl:../../../daemon:../../../coss/naming:../../../imr:../../../ir:$PATH
ADDR=inet:`uname -n`:12456
IRADDR=inet:`uname -n`:12500
MICOINC=../../../include
IDLPAR=-I$MICOINC


echo "Starting IR ..."
ird --db=ir-db -ORBIIOPAddr $IRADDR &
ird_pid=$!
sleep 5
echo $ird_pid > ird.pid

#trap "kill $ird_pid" 0

# run BOA daemon
echo "Starting BOA ..."
micod --db=imr-db -ORBIIOPAddr $ADDR -ORBIfaceRepoAddr $IRADDR --forward &
micod_pid=$!
sleep 5
echo $micod_pid > micod.pid

#trap "kill $micod_pid" 0

# register server
if [ ! -f imr-db ]
then

echo -n "Register RoleFactory server ..."
imr create RoleFactoryServer shared ./RoleFactoryServer.elf \
  IDL:omg.org/CosRelationships/RoleFactory:1.0#OwnerRole_impl \
  IDL:omg.org/CosRelationships/RoleFactory:1.0#OwnedByRole_impl \
  -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."
  
echo -n "Register RelationshipFactory server ..."
imr create RelationshipFactoryServer shared ./RelationshipFactoryServer.elf \
  IDL:omg.org/CosRelationships/RelationshipFactory:1.0#Ownership_impl \
  -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register RelationshipIterator server ..."
imr create RelationshipIteratorServer unshared ./RelationshipIteratorServer.elf \
  IDL:omg.org/CosRelationships/RelationshipIterator:1.0#RelationshipIterator_impl -ORBImplRepoAddr $ADDR  
#sleep 1
echo "done."

echo -n "Register Bank server ..."
imr create Banking unshared ./BankServer.elf \
  IDL:Account:1.0 IDL:Bank:1.0#Bank_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Person server ..."
imr create PersonServer unshared ./PersonServer.elf \
  IDL:Person:1.0 IDL:PersonFactory:1.0#PersonFactory_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Figure server ..."
imr create FigureServer unshared ./FigureServer.elf \
  IDL:Documents/Figure:1.0 IDL:Documents/FigureFactory:1.0#FigureFactory_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Text server ..."
imr create TextServer unshared ./TextServer.elf \
  IDL:Documents/Text:1.0 IDL:Documents/TextFactory:1.0#TextFactory_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register OwnerRole server ..."
imr create OwnerRoleServer unshared ./OwnerRoleServer.elf \
  IDL:omg.org/Ownership/OwnerRole:1.0#OwnerRole_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register OwnedByRole server ..."
imr create OwnedByRoleServer unshared ./OwnedByRoleServer.elf \
  IDL:omg.org/Ownership/OwnedByRole:1.0#OwnedByRole_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Ownership server ..."
imr create OwnershipServer unshared ./OwnershipServer.elf \
  IDL:omg.org/Ownership/Relationship:1.0#Relationship_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."


echo -n "Register EmployerRole server ..."
imr create EmployerRoleServer unshared ./EmployerRoleServer.elf \
  IDL:omg.org/Employment/EmployerRole:1.0#EmployerRole_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register EmployeeRole server ..."
imr create EmployeeRoleServer unshared ./EmployeeRoleServer.elf \
  IDL:omg.org/Employment/EmployeeRole:1.0#EmployeeRole_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Employment server ..."
imr create EmploymentServer unshared ./EmploymentServer.elf \
  IDL:omg.org/Employment/Relationship:1.0#Relationship_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."


echo -n "Register ContainsRole server ..."
imr create ContainsRoleServer unshared ./ContainsRoleServer.elf \
  IDL:omg.org/Containment/ContainsRole:1.0#ContainsRole_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register ContainedInRole server ..."
imr create ContainedInRoleServer unshared ./ContainedInRoleServer.elf \
  IDL:omg.org/Containment/ContainedInRole:1.0#ContainedInRole_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Containment server ..."
imr create ContainmentServer unshared ./ContainmentServer.elf \
  IDL:omg.org/Containment/Relationship:1.0#Relationship_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."


echo -n "Register ReferencesRole server ..."
imr create ReferencesRoleServer unshared ./ReferencesRoleServer.elf \
  IDL:omg.org/Reference/ReferencesRole:1.0#ReferencesRole_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register ReferencedByRole server ..."
imr create ReferencedByRoleServer unshared ./ReferencedByRoleServer.elf \
  IDL:omg.org/Reference/ReferencedByRole:1.0#ReferencedByRole_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."

echo -n "Register Reference server ..."
imr create ReferenceServer unshared ./ReferenceServer.elf \
  IDL:omg.org/Reference/Relationship:1.0#Relationship_impl -ORBImplRepoAddr $ADDR
#sleep 1
echo "done."


fi

if [ ! -f ir-db.idl ]
then

echo -n "Send ir.idl to IR ..."
idl $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir $MICOINC/mico/ir_base.idl
idl $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir $MICOINC/mico/ir.idl
echo "done."

echo -n "Send CosObjectIdentity.idl to IR ..."
idl   $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir $MICOINC/mico/CosObjectIdentity.idl
echo "done."

echo -n "Send CosRelationships.idl to IR ..."
idl   $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir $MICOINC/mico/CosRelationships.idl
#sleep 1
echo "done."

echo -n "Send Bank.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Bank.idl
#sleep 1
echo "done."

echo -n "Send Person.idl to IR ..."
idl   $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Person.idl
#sleep 1
echo "done."


echo -n "Send Documents.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Documents.idl
#sleep 1
echo "done."

echo -n "Send Employment.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Employment.idl
#sleep 1
echo "done."

echo -n "Send Ownership.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Ownership.idl
#sleep 1
echo "done."

echo -n "Send Containment.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Containment.idl
#sleep 1
echo "done."

echo -n "Send Reference.idl to IR ..."
idl  $IDLPAR -ORBIfaceRepoAddr $IRADDR --no-codegen-c++ --feed-ir Reference.idl
#sleep 1
echo "done."


fi



