From 5829e4042f7e0e33ade96e9505aba45d4b63fbcd Mon Sep 17 00:00:00 2001 From: rahuel Date: Tue, 30 Aug 2005 10:42:03 +0000 Subject: [PATCH] Methodes de test of Object References --- idl/AddComponent.idl | 8 +++ resources/COMPONENTCatalog.xml | 80 ++++++++++++++++++++++++++ src/AddComponent/AddComponent_Impl.cxx | 63 +++++++++++++++++++- src/AddComponent/AddComponent_Impl.hxx | 7 +++ src/AddComponent/Adder_Impl.hxx | 3 + src/AddComponent/Makefile.in | 5 +- 6 files changed, 162 insertions(+), 4 deletions(-) diff --git a/idl/AddComponent.idl b/idl/AddComponent.idl index c52db3a..b126148 100644 --- a/idl/AddComponent.idl +++ b/idl/AddComponent.idl @@ -40,6 +40,12 @@ module SuperVisionTest { double AddWithoutSleep( in double x , in double y , out double z ) ; long Sigma( in long n ) ; double LastResult() ; + boolean AdditionObjRefs( in AddComponent AddComponent1 , + in AddComponent Adder2 , + in AddComponent Adder3 , + out AddComponent RetAddComponent1 , + out AddComponent RetAdder2 , + out AddComponent RetAdder3 ) ; }; interface Adder : Engines::Component { @@ -49,6 +55,8 @@ module SuperVisionTest { out double z ) ; void SetLastResult( in double z ) ; void LastResult( out double z ) ; + Engines::Component LccAddComponent( in string aContainer , + in string aComponentName ) ; }; } ; diff --git a/resources/COMPONENTCatalog.xml b/resources/COMPONENTCatalog.xml index 0b10abd..ba84b8d 100644 --- a/resources/COMPONENTCatalog.xml +++ b/resources/COMPONENTCatalog.xml @@ -154,6 +154,53 @@ + + AdditionObjRefs + jr + 1 + unknown + 0 + + + AddComponent1 + AddComponent + unknown + + + Adder2 + AddComponent + unknown + + + Adder3 + AddComponent + unknown + + + + + return + boolean + unknown + + + RetAddComponent1 + AddComponent + unknown + + + RetAdder2 + AddComponent + unknown + + + RetAdder3 + AddComponent + unknown + + + + Adder + ... @@ -290,6 +337,39 @@ + + LccAddComponent + jr + 1 + unknown + 0 + 0 + + + Adder + SuperVisionTest::Adder + Adder Object + + + aContainer + string + unknown + + + aComponentName + string + unknown + + + + + return + AddComponent + unknown + + + + diff --git a/src/AddComponent/AddComponent_Impl.cxx b/src/AddComponent/AddComponent_Impl.cxx index 0dbb2cc..8375bce 100644 --- a/src/AddComponent/AddComponent_Impl.cxx +++ b/src/AddComponent/AddComponent_Impl.cxx @@ -32,7 +32,11 @@ using namespace std; #include #include -//#include "utilities.h" +#include "utilities.h" +#include "Utils_ORB_INIT.hxx" +#include "Utils_SINGLETON.hxx" +#include "SALOME_NamingService.hxx" +#include "SALOME_LifeCycleCORBA.hxx" #include "AddComponent_Impl.hxx" #include "Adder_Impl.hxx" @@ -71,7 +75,8 @@ SuperVisionTest::Adder_ptr AddComponent_Impl::Addition() { CORBA::Object_var obj = _poa->id_to_reference(*id); iobject = SuperVisionTest::Adder::_narrow(obj) ; endService( "AddComponent_Impl::Addition" ); - return SuperVisionTest::Adder::_duplicate(iobject) ; + return iobject._retn() ; +// return SuperVisionTest::Adder::_duplicate(iobject) ; } bool AddComponent_Impl::AdditionObjRef1( SuperVisionTest::Adder_out aAdder ) { @@ -169,6 +174,41 @@ double AddComponent_Impl::LastResult() { return LastAddition ; } +bool AddComponent_Impl::AdditionObjRefs( const SuperVisionTest::AddComponent_ptr AddComponent1 , + const SuperVisionTest::AddComponent_ptr Adder2 , + const SuperVisionTest::AddComponent_ptr Adder3 , + SuperVisionTest::AddComponent_out RetAddComponent1 , + SuperVisionTest::AddComponent_out RetAdder2 , + SuperVisionTest::AddComponent_out RetAdder3 ) { + bool RetVal = true ; + beginService( "AddComponent_Impl::AdditionObjRefs" ); + cout << "beginService AddComponent_Impl::AdditionObjRefs" << endl ; + ORB_INIT &init = *SINGLETON_::Instance() ; + ASSERT(SINGLETON_::IsAlreadyExisting()); + CORBA::ORB_var orb = init(0 , 0 ) ; + char * IOR = orb->object_to_string( AddComponent1 ); + cout << "AddComponent_Impl::AdditionObjRefs AddComponent1 " << AddComponent1 << " IOR " + << IOR << " nil " << CORBA::is_nil( AddComponent1 ) << endl ; + RetAddComponent1 = SuperVisionTest::AddComponent::_duplicate( AddComponent1 ) ; + IOR = orb->object_to_string( Adder2 ); + cout << "AddComponent_Impl::AdditionObjRefs Adder2 " << Adder2 << " IOR " << IOR << " nil " + << CORBA::is_nil( Adder2 ) << endl ; + RetAdder2 = SuperVisionTest::AddComponent::_duplicate( Adder2 ) ; + IOR = orb->object_to_string( Adder3 ); + cout << "AddComponent_Impl::AdditionObjRefs Adder3 " << Adder3 << " IOR " << IOR << " nil " + << CORBA::is_nil( Adder3 ) << endl ; + RetAdder3 = SuperVisionTest::AddComponent::_duplicate( Adder3 ) ; + if ( CORBA::is_nil( AddComponent1 ) || CORBA::is_nil( Adder2 ) || + CORBA::is_nil( Adder3 ) || CORBA::is_nil( RetAddComponent1 ) || + CORBA::is_nil( RetAdder2 ) || CORBA::is_nil( RetAdder3 ) ) { + RetVal = false ; + } + cout << "endService AddComponent_Impl::AdditionObjRefs" << endl ; + endService( "AddComponent_Impl::AdditionObjRefs" ); + return RetVal ; +} + + extern "C" { PortableServer::ObjectId * AddComponentEngine_factory @@ -307,4 +347,23 @@ void Adder_Impl::LastResult( double & z ) { return ; } +Engines::Component_ptr Adder_Impl::LccAddComponent( const char * aContainer , + const char * aComponentName ) { + beginService( "Adder_Impl::LccAddComponent" ); + Engines::Component_ptr objComponent ; + objComponent = Engines::Component::_nil() ; + + ORB_INIT &init = *SINGLETON_::Instance() ; + ASSERT(SINGLETON_::IsAlreadyExisting()); + CORBA::ORB_var orb = init(0 , 0 ) ; + SALOME_NamingService *_NS ; + _NS = new SALOME_NamingService(); + _NS->init_orb( CORBA::ORB::_duplicate(orb) ) ; + + SALOME_LifeCycleCORBA LCC( _NS ) ; + objComponent = LCC.FindOrLoad_Component( aContainer , + aComponentName ); + endService( "Adder_Impl::LccAddComponent" ); + return objComponent ; +} diff --git a/src/AddComponent/AddComponent_Impl.hxx b/src/AddComponent/AddComponent_Impl.hxx index 5fc8855..853cf84 100644 --- a/src/AddComponent/AddComponent_Impl.hxx +++ b/src/AddComponent/AddComponent_Impl.hxx @@ -60,6 +60,13 @@ public: virtual double LastResult() ; + virtual bool AdditionObjRefs( const SuperVisionTest::AddComponent_ptr AddComponent1 , + const SuperVisionTest::AddComponent_ptr Adder2 , + const SuperVisionTest::AddComponent_ptr Adder3 , + SuperVisionTest::AddComponent_out RetAddComponent1 , + SuperVisionTest::AddComponent_out RetAdder2 , + SuperVisionTest::AddComponent_out RetAdder3 ) ; + private: double LastAddition ; diff --git a/src/AddComponent/Adder_Impl.hxx b/src/AddComponent/Adder_Impl.hxx index 4b4696e..17c1eb9 100644 --- a/src/AddComponent/Adder_Impl.hxx +++ b/src/AddComponent/Adder_Impl.hxx @@ -63,6 +63,9 @@ class Adder_Impl : public POA_SuperVisionTest::Adder , virtual void LastResult( double & z ) ; + virtual Engines::Component_ptr LccAddComponent( const char * aContainer , + const char * aComponentName ) ; + private: double LastAddition ; diff --git a/src/AddComponent/Makefile.in b/src/AddComponent/Makefile.in index 28aff41..3752921 100755 --- a/src/AddComponent/Makefile.in +++ b/src/AddComponent/Makefile.in @@ -43,7 +43,8 @@ LIB = libAddComponentEngine.la LIB_SRC = \ AddComponent_Impl.cxx -LIB_SERVER_IDL = SALOME_Component.idl \ +LIB_SERVER_IDL = SALOME_ContainerManager.idl \ + SALOME_Component.idl \ AddComponent.idl # Executables targets @@ -53,7 +54,7 @@ BIN_SERVER_IDL = CPPFLAGS+= $(PYTHON_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome CXXFLAGS= -g -D_DEBUG_ -D__x86__ -D__linux__ $(PYTHON_INCLUDES) -ftemplate-depth-42 -Wall -I${KERNEL_ROOT_DIR}/include/salome -LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -lSalomeContainer -lSalomeNS -lOpUtil -lRegistry -lSalomeNotification -lSALOMELocalTrace +LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -lSalomeContainer -lSalomeNS -lOpUtil -lRegistry -lSalomeNotification -lSALOMELocalTrace -lSalomeNS -lSalomeLifeCycleCORBA LDFLAGSFORBIN+= -L${KERNEL_ROOT_DIR}/lib/salome -lSalomeContainer -lSalomeNS -lOpUtil -lRegistry -lSalomeNotification -lSALOMELocalTrace -- 2.39.2