Salome HOME
Copyright update 2021
[modules/med.git] / idl / MEDDataManager.idl
index ce12020183c42c7354c25da547ed31a1f8f3381f..eb8842cca6704cc57d35b730bcc54aa300ff1b2b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -28,7 +28,7 @@
 #include "SALOME_GenericObj.idl"
 #include "SALOME_Exception.idl"
 
-module MEDOP
+module MEDCALC
 {
   struct DatasourceHandler {
     long id;
@@ -45,17 +45,17 @@ module MEDOP
   typedef sequence<MeshHandler> MeshHandlerList;
 
   /**
-   * The Fieldseries is a virtal object that does not exist in the MED
+   * The Fieldseries is a virtual object that does not exist in the MED
    * data model (at least in the MEDCoupling data model). It is just a
-   * point that aggregate a list of fields that relie on the same mesh
+   * point that aggregates a list of fields that rely on the same mesh
    * with the same type (the fields in a timeseries differ by their
    * time step).
-   * 
+   *
    * Then you could have a field with no fieldseries associated but
    * directly associated to a mesh. That is typically the case of
-   * fields created by MED operations: if you operate tow fields
+   * fields created by MED operations: if you operate two fields
    * coming from 2 different timeseries (and relying on the same
-   * mesh), you obtain a field that can not be associate to the
+   * mesh), you obtain a field that can not be associated to the
    * original timeseries. Then this new created field must be directly
    * associated to its underlying mesh (as defined in the MEDCoupling
    * data model).
@@ -84,7 +84,7 @@ module MEDOP
   };
   typedef sequence<FieldseriesHandler> FieldseriesHandlerList;
 
-  // The FieldHandler structure is a lightweigth data structure that
+  // The FieldHandler structure is a lightweight data structure that
   // represents a single field (as understood in MEDCoupling model).
   struct FieldHandler {
     long   id;
@@ -101,20 +101,31 @@ module MEDOP
   typedef sequence<FieldHandler> FieldHandlerList;
   typedef sequence<long> FieldIdList;
 
+  struct InterpolationParameters {
+    double precision;
+    double defaultValue;
+    boolean reverse;
+    string method;
+    string nature;
+    string intersectionType;
+  };
+
   interface MEDDataManager: SALOME::GenericObj
   {
-    
+
     //==========================================================
     // Datasource management
     //==========================================================
-    DatasourceHandler addDatasource(in string filepath);
+    DatasourceHandler loadDatasource(in string filepath);
+    DatasourceHandler getDatasourceHandler(in string filepath);
+    DatasourceHandler getDatasourceHandlerFromID(in long sourceid);
 
     //==========================================================
     // Mesh data management
     //==========================================================
-    
-    MeshHandler     getMesh(in long meshId) raises (SALOME::SALOME_Exception);
-    MeshHandlerList getMeshList(in long datasourceId);
+
+    MeshHandler     getMeshHandler(in long meshId) raises (SALOME::SALOME_Exception);
+    MeshHandlerList getMeshHandlerList(in long datasourceId);
 
     //==========================================================
     // Field data management
@@ -122,9 +133,11 @@ module MEDOP
     FieldseriesHandlerList getFieldseriesListOnMesh(in long meshId);
     FieldHandlerList getFieldListInFieldseries(in long fieldseriesId);
 
+    long getFieldIdAtTimestamp(in long fieldseriesId, in double timestamp);
+
     FieldHandler     getFieldHandler(in long fieldHandlerId);
     FieldHandlerList getFieldHandlerList();
-    // __GBO__ Maybe it could be usefull to define a getFieldHandlerList with a datasourceId in argument
+    // __GBO__ Maybe it could be useful to define a getFieldHandlerList with a datasourceId in argument
     string           getFieldRepresentation(in long fieldHandlerId);
 
     // Persistency management
@@ -136,16 +149,21 @@ module MEDOP
 
 
     void updateFieldMetadata(in long   fieldHandlerId,
-                            in string fieldname,
-                            in long   iteration,
-                            in long   order,
-                            in string source);
+                             in string fieldname,
+                             in long   iteration,
+                             in long   order,
+                             in string source);
 
     //void saveFields(in FieldHandlerList fieldHandlerList, in string filepath);
 
+    double getFieldTimestamp(in long fieldHandlerId);
+
     void changeUnderlyingMesh(in long fieldHandlerId, in long meshHandlerId)
       raises (SALOME::SALOME_Exception);
-    
+
+    FieldHandler interpolateField(in long fieldHandlerId, in long meshHandlerId, in InterpolationParameters params)
+      raises (SALOME::SALOME_Exception);
+
     //==========================================================
     // General purpose data management
     //==========================================================
@@ -154,6 +172,8 @@ module MEDOP
 
     // Print out server data
     void serverlog();
+
+    void cleanUp() raises (SALOME::SALOME_Exception);
   };
 };