--- /dev/null
+// 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 : SALOME_DataTypeCatalog.idl
+// Author : Estelle Deville, Paul Rascle
+// $Header$
+
+module SALOME_DataTypeCatalog{
+// Type definitions
+
+// List of Data Type Names
+ typedef sequence<string> ListOfDataTypeName ;
+
+ // Exception thrown if a DataType is not found in the catalog
+ exception NotFound {};
+//--------------------------------------------------------------------------
+// Interfaces
+
+// Catalog interface :
+// methods to :
+// - obtain the data type names of the catalog
+// - test the compatibility between two type names
+interface DataCatalog
+{
+ ListOfDataTypeName GetDataTypeList() ;
+ boolean isDerivedFrom(in string type_in, in string type_out) raises(NotFound);
+ string GetDataInterfaceRead(in string type) raises(NotFound);
+ string GetDataInterfaceWrite(in string type)raises(NotFound);
+ ListOfDataTypeName GetDataTypeParents(in string type) raises(NotFound);
+} ;
+};