Back to index

salome-kernel  6.5.0
SALOME_ModuleCatalog_Acomponent_impl.hxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules
00024 //  File   : SALOME_ModuleCatalog_Acomponent_impl.hxx
00025 //  Author : Estelle Deville
00026 //  Module : SALOME
00027 //  $Header: /home/server/cvs/KERNEL/KERNEL_SRC/src/ModuleCatalog/SALOME_ModuleCatalog_Acomponent_impl.hxx,v 1.10.2.1.10.2.12.1 2012-04-12 14:05:17 vsr Exp $
00028 //
00029 #ifndef ACOMPONENT_IMPL_H
00030 #define ACOMPONENT_IMPL_H
00031 
00032 #include "SALOME_ModuleCatalog.hxx"
00033 
00034 #include "SALOME_ModuleCatalog_Parser.hxx"
00035 #include <SALOMEconfig.h>
00036 
00037 #include CORBA_SERVER_HEADER(SALOME_ModuleCatalog)
00038 
00039 #ifdef WNT
00040 #pragma warning(disable:4275) // Disable warning interface non dll
00041 #pragma warning(disable:4290) // Warning Exception ...
00042 #endif
00043 
00044 class MODULECATALOG_EXPORT SALOME_ModuleCatalog_AcomponentImpl: public POA_SALOME_ModuleCatalog::Acomponent
00045 {
00046 public:
00048   SALOME_ModuleCatalog_AcomponentImpl(SALOME_ModuleCatalog::ComponentDef &C);
00049 
00051   virtual ~SALOME_ModuleCatalog_AcomponentImpl();
00052 
00054 
00057   virtual SALOME_ModuleCatalog::ListOfInterfaces* GetInterfaceList() ;
00058 
00060 
00064   virtual SALOME_ModuleCatalog::DefinitionInterface* 
00065              GetInterface(const char* interfacename)
00066              throw(SALOME_ModuleCatalog::NotFound);
00067 
00069 
00073   virtual SALOME_ModuleCatalog::ListOfServices* 
00074              GetServiceList(const char* interfacename)
00075              throw(SALOME_ModuleCatalog::NotFound);
00076 
00077     
00079 
00085   virtual SALOME_ModuleCatalog::Service* 
00086              GetService(const char* interfacename, 
00087                         const char* servicename) 
00088              throw(SALOME_ModuleCatalog::NotFound);
00089 
00091 
00095   virtual SALOME_ModuleCatalog::Service* 
00096              GetDefaultService(const char* interfacename) 
00097              throw(SALOME_ModuleCatalog::NotFound);
00098 
00100 
00104   virtual char* GetPathPrefix(const char* machinename) 
00105                 throw(SALOME_ModuleCatalog::NotFound);
00106 
00108 
00111   virtual char* constraint() ;
00112 
00114 
00117   virtual char* componentname();
00118 
00120 
00123   virtual char* componentusername();
00124 
00126 
00129   virtual CORBA::Boolean multistudy();
00130 
00132 
00135   virtual SALOME_ModuleCatalog::ComponentType component_type() ;
00136 
00138 
00141   virtual char* component_icone();
00142 
00144 
00147   virtual SALOME_ModuleCatalog::ImplType implementation_type();
00148 
00150 
00153   virtual char* implementation_name();
00154 
00155 private :
00156 
00157   SALOME_ModuleCatalog::ComponentDef _Component;
00158 
00160 
00164   void duplicate(SALOME_ModuleCatalog::DefinitionInterface &I_out,
00165                  const SALOME_ModuleCatalog::DefinitionInterface &I_in);
00166 
00168 
00172   void duplicate(SALOME_ModuleCatalog::Service & S_out,
00173                  const SALOME_ModuleCatalog::Service &S_in);
00174 
00176 
00180   void duplicate(SALOME_ModuleCatalog::ServicesParameter & P_out,
00181                  const SALOME_ModuleCatalog::ServicesParameter & P_in);
00182 
00184 
00188   void duplicate(SALOME_ModuleCatalog::ServicesDataStreamParameter & P_out,
00189                  const SALOME_ModuleCatalog::ServicesDataStreamParameter &P_in);
00190 
00191 };
00192 
00193 
00194 #endif // ACOMPONENT_IMPL_H