From: nri Date: Wed, 26 Nov 2003 12:23:17 +0000 (+0000) Subject: NRI : TypesCheck component. X-Git-Tag: V1_4_0b1~5 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=6d0c1ca22def0699d53ccf0134cda0f2186eccfe;hp=c3137db7152882583c3da280026b4e907f4540b7;p=samples%2Fcomponent.git NRI : TypesCheck component. --- diff --git a/idl/Makefile.in b/idl/Makefile.in index 2804cd3..9ddf083 100644 --- a/idl/Makefile.in +++ b/idl/Makefile.in @@ -17,7 +17,8 @@ IDL_FILES = \ DivComponent.idl \ SubComponent.idl \ FactorialComponent.idl \ - SyrComponent.idl + SyrComponent.idl \ + TypesCheck.idl PY_CLIENT_IDL = $(IDL_FILES) diff --git a/idl/TypesCheck.idl b/idl/TypesCheck.idl new file mode 100644 index 0000000..394b806 --- /dev/null +++ b/idl/TypesCheck.idl @@ -0,0 +1,62 @@ +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : TypesCheck.idl +// Author : Jean Rahuel +// $Header: + +#ifndef __TYPESCHECK_IDL__ +#define __TYPESCHECK_IDL__ + +#include "SALOME_Component.idl" + +#include "AddComponent.idl" + +// Check of types for SuperVision module + +module SuperVisionTest { + + interface TypesCheck : Engines::Component { + + void StringCheck( in string InString , out string OutString ) ; + + void BoolCheck( in boolean InBool , out boolean OutBool ) ; + + void CharCheck( in char InChar , out char OutChar ) ; + + void ShortCheck( in short InShort , out short OutShort ) ; + + void LongCheck( in long InLong , out long OutLong ) ; + + void FloatCheck( in float InFloat , out float OutFloat ) ; + + void DoubleCheck( in double InDouble , out double OutDouble ) ; + + void ObjRefCheck( in SuperVisionTest::Adder InObjRef , out SuperVisionTest::Adder OutObjRef ) ; + + void MiscTypes( in string InString , in boolean InBool , in char InChar , in short InShort , in long InLong , in float InFloat , in double InDouble , in SuperVisionTest::Adder InObjRef , out string OutString , out boolean OutBool , out char OutChar , out short OutShort , out long OutLong , out float OutFloat , out double OutDouble , out SuperVisionTest::Adder OutObjRef ) ; + + } ; + +} ; + +#endif + diff --git a/src/Makefile.in b/src/Makefile.in index ba8d9f4..9b3ce3d 100755 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -32,6 +32,6 @@ VPATH=.:@srcdir@ @COMMENCE@ -SUBDIRS = AddComponent DivComponent FactorialComponent MulComponent SubComponent SyrComponent SyrControlComponent +SUBDIRS = AddComponent DivComponent FactorialComponent MulComponent SubComponent SyrComponent SyrControlComponent TypesCheck @MODULE@ diff --git a/src/TypesCheck/Makefile.in b/src/TypesCheck/Makefile.in new file mode 100755 index 0000000..f3a9f52 --- /dev/null +++ b/src/TypesCheck/Makefile.in @@ -0,0 +1,60 @@ +# SuperVisionTest AddComponent : example of component that adds two numbers +# +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +# +# +# +# File : Makefile.in +# Author : , CEA +# Module : SuperVisionTest +# $Header$ + +top_srcdir=@top_srcdir@ +top_builddir=../.. +srcdir=@srcdir@ +VPATH=.:@srcdir@:@top_srcdir@/idl + + +@COMMENCE@ + +EXPORT_HEADERS = \ + TypesCheck_Impl.hxx + +# Libraries targets +LIB = libTypesCheckEngine.la +LIB_SRC = \ + TypesCheck_Impl.cxx + +LIB_SERVER_IDL = TypesCheck.idl \ + AddComponent.idl + +# Executables targets +BIN = TypesCheck_CheckOfUndefined +BIN_SRC = +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+= -lSalomeContainer -lSalomeNS -lOpUtil -lRegistry -lSalomeNotification -lSalomeLoggerServer -L${KERNEL_ROOT_DIR}/lib/salome + +LDFLAGSFORBIN+= -lSalomeContainer -lSalomeNS -lOpUtil -lRegistry -lSalomeNotification -lSalomeLoggerServer -L${KERNEL_ROOT_DIR}/lib/salome + +@CONCLUDE@ + diff --git a/src/TypesCheck/TypesCheck_CheckOfUndefined.cxx b/src/TypesCheck/TypesCheck_CheckOfUndefined.cxx new file mode 100644 index 0000000..209a39d --- /dev/null +++ b/src/TypesCheck/TypesCheck_CheckOfUndefined.cxx @@ -0,0 +1,37 @@ +// SuperVisionTest TypesCheck : +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : TypesCheck_CheckOfUndefined.cxx +// Module : SuperVisionTest + +using namespace std; +#include +#include +#include + +#include "TypesCheck_Impl.hxx" + +int main(int argc, char **argv) { + return 0; +} + diff --git a/src/TypesCheck/TypesCheck_Impl.cxx b/src/TypesCheck/TypesCheck_Impl.cxx new file mode 100644 index 0000000..cda6c8c --- /dev/null +++ b/src/TypesCheck/TypesCheck_Impl.cxx @@ -0,0 +1,146 @@ +// SuperVisionTest SyrComponent : example of component performing some mathinatical operations +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : TypesCheck_Impl.cxx +// Author : Jean Rahuel +// Module : SuperVisionTest + +using namespace std; +#include +#include +#include +#include +#include + +#include "TypesCheck_Impl.hxx" + +TypesCheck_Impl::TypesCheck_Impl( CORBA::ORB_ptr orb , + PortableServer::POA_ptr poa , + PortableServer::ObjectId * contId , + const char *instanceName , + const char *interfaceName , + const bool kactivate ) : + Engines_Component_i(orb, poa, contId, instanceName, interfaceName,1,true) { + MESSAGE("TypesCheck_Impl::TypesCheck_Impl this " << hex << this << dec + << "activate object instanceName(" + << instanceName << ") interfaceName(" << interfaceName << ")" ) + if ( kactivate ) { + _thisObj = this ; + _id = _poa->activate_object(_thisObj); + } +} + +TypesCheck_Impl::TypesCheck_Impl() { + beginService( "TypesCheck_Impl::TypesCheck_Impl" ); + endService( "TypesCheck_Impl::TypesCheck_Impl" ); +} + +TypesCheck_Impl::~TypesCheck_Impl() { + beginService( "TypesCheck_Impl::~TypesCheck_Impl" ); + endService( "TypesCheck_Impl::~TypesCheck_Impl" ); +} + +void TypesCheck_Impl::StringCheck( const char * InString , _CORBA_String_out OutString ) { + beginService( "TypesCheck_Impl::StringCheck" ); + OutString = CORBA::string_dup( InString ) ; + endService( "TypesCheck_Impl::StringCheck" ); +} + +void TypesCheck_Impl::BoolCheck( const bool InBool , bool & OutBool ) { + beginService( "TypesCheck_Impl::BoolCheck" ); + OutBool = InBool ; + endService( "TypesCheck_Impl::BoolCheck" ); +} + +void TypesCheck_Impl::CharCheck( const unsigned char InChar , unsigned char & OutChar ) { + beginService( "TypesCheck_Impl::CharCheck" ); + OutChar = InChar ; + endService( "TypesCheck_Impl::CharCheck" ); +} + +void TypesCheck_Impl::ShortCheck( const short InShort , short & OutShort ) { + beginService( "TypesCheck_Impl::ShortCheck" ); + OutShort = InShort ; + endService( "TypesCheck_Impl::ShortCheck" ); +} + +void TypesCheck_Impl::IntCheck( const int InInt , int & OutInt ) { + beginService( "TypesCheck_Impl::IntCheck" ); + OutInt = InInt ; + endService( "TypesCheck_Impl::IntCheck" ); +} + +void TypesCheck_Impl::LongCheck( const long InLong , long & OutLong ) { + beginService( "TypesCheck_Impl::LongCheck" ); + int inInt = InLong ; + int outInt = OutLong ; + IntCheck( inInt , outInt ) ; + OutLong = outInt ; + endService( "TypesCheck_Impl::LongCheck" ); +} + +void TypesCheck_Impl::FloatCheck( const float InFloat , float & OutFloat ) { + beginService( "TypesCheck_Impl::FloatCheck" ); + OutFloat = InFloat ; + endService( "TypesCheck_Impl::FloatCheck" ); +} + +void TypesCheck_Impl::DoubleCheck( const double InDouble , double & OutDouble ) { + beginService( "TypesCheck_Impl::DoubleCheck" ); + OutDouble = InDouble ; + endService( "TypesCheck_Impl::DoubleCheck" ); +} + +void TypesCheck_Impl::ObjRefCheck( const SuperVisionTest::Adder_ptr InObjRef , SuperVisionTest::Adder_out OutObjRef ) { + beginService( "TypesCheck_Impl::ObjRefCheck" ); + OutObjRef = SuperVisionTest::Adder::_duplicate( InObjRef ) ; + endService( "TypesCheck_Impl::ObjRefCheck" ); +} + +void TypesCheck_Impl::MiscTypes( const char * InString , const bool InBool , const unsigned char InChar , const short InShort , const long InLong , const float InFloat , const double InDouble , const SuperVisionTest::Adder_ptr InObjRef , _CORBA_String_out OutString ,bool & OutBool , unsigned char & OutChar , short & OutShort , long & OutLong , float & OutFloat , double & OutDouble , SuperVisionTest::Adder_out OutObjRef ) { + beginService( "TypesCheck_Impl::MiscTypes" ); + OutString = CORBA::string_dup( InString ) ; + OutBool = InBool ; + OutChar = InChar ; + OutShort = InShort ; + OutLong = InLong ; + OutFloat = InFloat ; + OutDouble = InDouble ; + OutObjRef = SuperVisionTest::Adder::_duplicate( InObjRef ) ; + endService( "TypesCheck_Impl::MiscTypes" ); +} + +extern "C" +{ + PortableServer::ObjectId * TypesCheckEngine_factory( CORBA::ORB_ptr orb , + PortableServer::POA_ptr poa , + PortableServer::ObjectId * contId , + const char *instanceName , + const char *interfaceName ) { + MESSAGE("TypesCheckEngine_factory TypesCheckEngine (" + << instanceName << "," << interfaceName << "," << getpid() << ")"); + TypesCheck_Impl * myTypesCheck = new TypesCheck_Impl(orb, poa, contId, instanceName, interfaceName); + return myTypesCheck->getId() ; + } +} + diff --git a/src/TypesCheck/TypesCheck_Impl.hxx b/src/TypesCheck/TypesCheck_Impl.hxx new file mode 100644 index 0000000..987b7d6 --- /dev/null +++ b/src/TypesCheck/TypesCheck_Impl.hxx @@ -0,0 +1,85 @@ +// SuperVisionTest SyrComponent : example of component performing some mathinatical operations +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SyrComponent_Impl.hxx +// Author : Jean Rahuel +// Module : SuperVisionTest +// $Header: + +#ifndef _TYPESCHECK_IMPL_HXX_ +#define _TYPESCHECK_IMPL_HXX_ + +#include +#include CORBA_SERVER_HEADER(AddComponent) +#include CORBA_SERVER_HEADER(TypesCheck) +#include CORBA_SERVER_HEADER(SALOME_Component) +#include "SALOME_Component_i.hxx" + +#include "AddComponent_Impl.hxx" + +class TypesCheck_Impl : public POA_SuperVisionTest::TypesCheck , + public Engines_Component_i { + public: + TypesCheck_Impl() ; + TypesCheck_Impl( CORBA::ORB_ptr orb , + PortableServer::POA_ptr poa , + PortableServer::ObjectId * contId , + const char *instanceName , + const char *interfaceName , + const bool kactivate = true ) ; + + virtual ~TypesCheck_Impl(); + + virtual void StringCheck( const char * InString , _CORBA_String_out OutString ) ; + + virtual void BoolCheck( const bool InBool , bool & OutBool ) ; + + virtual void CharCheck( const unsigned char InChar , unsigned char & OutChar ) ; + + virtual void ShortCheck( const short InShort , short & OutShort ) ; + + virtual void IntCheck( const int InInt , int & OutInt ) ; + + virtual void LongCheck( const long InLong , long & OutLong ) ; + + virtual void FloatCheck( const float InFloat , float & OutFloat ) ; + + virtual void DoubleCheck( const double InDouble , double & OutDouble ) ; + + virtual void ObjRefCheck( const SuperVisionTest::Adder_ptr InObjRef , SuperVisionTest::Adder_out OutObjRef ) ; + + virtual void MiscTypes( const char * InString , const bool InBool , const unsigned char InChar , const short InShort , const long InLong , const float InFloat , const double InDouble , SuperVisionTest::Adder_ptr InObjRef , _CORBA_String_out OutString , bool & OutBool , unsigned char & OutChar , short & OutShort , long & OutLong , float & OutFloat , double & OutDouble , SuperVisionTest::Adder_out OutObjRef ) ; + + private: + + +}; + +extern "C" + PortableServer::ObjectId * TypesCheckEngine_factory ( CORBA::ORB_ptr orb , + PortableServer::POA_ptr poa , + PortableServer::ObjectId * contId , + const char *instanceName , + const char *interfaceName ) ; + +#endif