Salome HOME
updated copyright message
[modules/geom.git] / src / GEOM_I / GEOM_Gen_i.hh
index c65e9500cdc3f7e3d251b6d49643af5b797de45e..0525170e14739dba4703d9319a3da6088a66ac6f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  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
@@ -51,6 +51,8 @@
 #include "GEOM_IMeasureOperations_i.hh"
 #include "GEOM_IGroupOperations_i.hh"
 #include "GEOM_IFieldOperations_i.hh"
+#include "GEOM_ITestOperations_i.hh"
+#include "GEOM_ICanonicalRecognition_i.hh"
 #include "GEOMUtils.hxx"
 
 #include <TopTools_IndexedMapOfShape.hxx>
@@ -81,7 +83,7 @@ class GEOM_I_EXPORT GEOM_GenericOperationsCreator
 //=====================================================================
 // GEOM_Gen_i : class definition
 //=====================================================================
-class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual public Engines_Component_i
+class GEOM_I_EXPORT GEOM_Gen_i : public POA_GEOM::GEOM_Gen, public Engines_Component_i
 {
  public:
 
@@ -95,22 +97,17 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi
              PortableServer::POA_ptr poa,
              PortableServer::ObjectId * contId,
              const char *instanceName,
-             const char *interfaceName);
+             const char *interfaceName,
+             bool withRegistry = true);
 
   // destructor, doing nothing (for now)
   virtual ~GEOM_Gen_i();
 
-  // generic method to be put in a super class
-  void register_name(char * name);
-
   // Get ORB object
   CORBA::ORB_ptr GetORB() { return CORBA::ORB::_duplicate(_orb); }
 
-  // Get Naming Service object
-  SALOME_NamingService* GetNS() { return name_service; }
-
   // Get Study
-  SALOMEDS::Study_var getStudyServant();
+  virtual SALOMEDS::Study_var getStudyServant() = 0;
 
   //-----------------------------------------------------------------------//
   // Inherited methods from SALOMEDS::Driver                               //
@@ -150,7 +147,7 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi
   bool CanPublishInStudy(CORBA::Object_ptr theIOR);
   SALOMEDS::SObject_ptr PublishInStudy(SALOMEDS::SObject_ptr theSObject,
                                        CORBA::Object_ptr theObject,
-                                       const char* theName) throw (SALOME::SALOME_Exception) ;
+                                       const char* theName) ;
 
   GEOM::ListOfGO* PublishNamedShapesInStudy(CORBA::Object_ptr theObject);
 
@@ -213,60 +210,61 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi
   //-----------------------------------------------------------------------//
 
   //Returns a pointer to BasicOperations interface
-  virtual GEOM::GEOM_IBasicOperations_ptr GetIBasicOperations()
-    throw (SALOME::SALOME_Exception);
+  virtual GEOM::GEOM_IBasicOperations_ptr GetIBasicOperations();
 
   //Returns a pointer to TransformOperations interface
-  virtual GEOM::GEOM_ITransformOperations_ptr GetITransformOperations()
-    throw (SALOME::SALOME_Exception);
+  virtual GEOM::GEOM_ITransformOperations_ptr GetITransformOperations();
 
   //Returns a pointer to 3DPrimOperations interface
-  virtual GEOM::GEOM_I3DPrimOperations_ptr GetI3DPrimOperations()
-    throw (SALOME::SALOME_Exception);
+  virtual GEOM::GEOM_I3DPrimOperations_ptr GetI3DPrimOperations();
 
   //Returns a pointer to ShapesOperations interface
-  virtual GEOM::GEOM_IShapesOperations_ptr GetIShapesOperations()
-    throw (SALOME::SALOME_Exception);
+  virtual GEOM::GEOM_IShapesOperations_ptr GetIShapesOperations();
 
   //Returns a pointer to BlocksOperations interface
-  virtual GEOM::GEOM_IBlocksOperations_ptr GetIBlocksOperations()
-    throw (SALOME::SALOME_Exception);
+  virtual GEOM::GEOM_IBlocksOperations_ptr GetIBlocksOperations();
 
   //Returns a pointer to BooleanOperations interface
   virtual GEOM::GEOM_IBooleanOperations_ptr GetIBooleanOperations()
-    throw (SALOME::SALOME_Exception);
+    ;
 
   //Returns a pointer to CurvesOperations interface
   virtual GEOM::GEOM_ICurvesOperations_ptr GetICurvesOperations()
-    throw (SALOME::SALOME_Exception);
+    ;
 
   //Returns a pointer to LocalOperations interface
   virtual GEOM::GEOM_ILocalOperations_ptr GetILocalOperations()
-    throw (SALOME::SALOME_Exception);
+    ;
 
   //Returns a pointer to HealingOperations interface
   virtual GEOM::GEOM_IHealingOperations_ptr GetIHealingOperations()
-    throw (SALOME::SALOME_Exception);
+    ;
 
   //Returns a pointer to InsertOperations interface
   virtual GEOM::GEOM_IInsertOperations_ptr GetIInsertOperations()
-    throw (SALOME::SALOME_Exception);
+    ;
 
   //Returns a pointer to MeasureOperations interface
   virtual GEOM::GEOM_IMeasureOperations_ptr GetIMeasureOperations()
-    throw (SALOME::SALOME_Exception);
+    ;
 
   //Returns a pointer to GroupOperations interface
   virtual GEOM::GEOM_IGroupOperations_ptr GetIGroupOperations()
-    throw (SALOME::SALOME_Exception);
+    ;
 
   //Returns a pointer to FiedlOperations interface
   virtual GEOM::GEOM_IFieldOperations_ptr GetIFieldOperations()
-    throw (SALOME::SALOME_Exception);
+    ;
+
+  //Returns a pointer to TestOperations interface
+  virtual GEOM::GEOM_ITestOperations_ptr GetITestOperations()
+    ;
+
+  virtual GEOM::GEOM_ICanonicalRecognition_ptr GetICanonicalRecognition();
 
   //Returns a pointer to corresponding plugin operations interface
   virtual GEOM::GEOM_IOperations_ptr GetPluginOperations (const char* theLibName)
-    throw (SALOME::SALOME_Exception);
+    ;
 
   //Adds a new sub-shape
   virtual GEOM::GEOM_Object_ptr AddSubShape (GEOM::GEOM_Object_ptr theMainShape,
@@ -325,6 +323,8 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi
   virtual GEOM::GEOM_BaseObject_ptr GetObject(const char* theEntry);
 
  private:
+  SALOMEDS::SComponent_var findOrCreateComponent();
+
   GEOM::ListOfGO* RestoreSubShapes (GEOM::GEOM_Object_ptr   theObject,
                                     SALOMEDS::SObject_ptr   theSObject,
                                     const GEOM::ListOfGO&   theArgs,
@@ -385,10 +385,12 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi
 
   void LoadPlugin(const std::string& theLibName);
 
+
+  virtual void BreakLink(const char*) {}
+
  private:
 
    ::GEOMImpl_Gen* _impl;
-   SALOME_NamingService * name_service;
    char * _name;
 
    // plugin operations managing