Salome HOME
7a2cc3d10c92445da34decee85d66858e7ceb393
[modules/kernel.git] / src / KernelHelpers / SALOMEDS_DriverDefaultImpl.hxx
1 // Copyright (C) 2007-2023  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 // Author: Guillaume Boulant (EDF/R&D)
21
22 #ifndef __SALOMEDS_DRIVER_DEFAULT_IMPL_H__
23 #define __SALOMEDS_DRIVER_DEFAULT_IMPL_H__
24
25 #include "KernelHelpers.hxx"
26
27 #include "SALOME_Component_i.hxx"
28 #include "SALOME_NamingService.hxx"
29
30 #include CORBA_CLIENT_HEADER(SALOMEDS)
31
32
33 //---------------------------------------------------------
34
35 class KERNELHELPERS_EXPORT SALOMEDS_DriverDefaultImpl:
36   public virtual POA_SALOMEDS::Driver
37 //---------------------------------------------------------
38   {
39
40
41     SALOMEDS_DriverDefaultImpl();
42   public:
43     SALOMEDS_DriverDefaultImpl(CORBA::ORB_ptr orb,
44              PortableServer::POA_ptr poa,
45              PortableServer::ObjectId * contId,
46              const char *instanceName,
47              const char *interfaceName);
48
49
50     virtual ~SALOMEDS_DriverDefaultImpl();
51
52     //---------------------------------------------
53     // inherited methods from SALOMEDS::Driver
54     //---------------------------------------------
55
56     //virtual SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
57      SALOMEDS::TMPFile* Save(SALOMEDS::SComponent_ptr theComponent,
58             const char* theURL,
59             bool isMultiFile);
60
61     virtual SALOMEDS::TMPFile* SaveASCII(SALOMEDS::SComponent_ptr theComponent,
62            const char* theURL,
63            bool isMultiFile);
64
65     virtual bool Load(SALOMEDS::SComponent_ptr,
66           const SALOMEDS::TMPFile &,
67           const char* theURL,
68           bool isMultiFile);
69
70     virtual bool LoadASCII(SALOMEDS::SComponent_ptr,
71          const SALOMEDS::TMPFile &,
72          const char* theURL,
73          bool isMultiFile);
74
75     virtual void Close(SALOMEDS::SComponent_ptr IORSComponent);
76
77     virtual char* ComponentDataType();
78
79     virtual char* IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
80            const char* IORString,
81            CORBA::Boolean isMultiFile,
82            CORBA::Boolean isASCII);
83
84     virtual char* LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
85            const char* aLocalPersistentID,
86            CORBA::Boolean isMultiFile,
87            CORBA::Boolean isASCII);
88
89     virtual bool CanPublishInStudy(CORBA::Object_ptr theIOR);
90
91     virtual SALOMEDS::SObject_ptr PublishInStudy(SALOMEDS::SObject_ptr theSObject,
92                                                  CORBA::Object_ptr     theObject,
93                                                  const char*           theName);
94
95     virtual CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject);
96
97     virtual SALOMEDS::TMPFile* CopyFrom(SALOMEDS::SObject_ptr theObject, 
98                                 CORBA::Long& theObjectID);
99
100     virtual CORBA::Boolean CanPaste(const char* theComponentName, 
101                             CORBA::Long theObjectID);
102
103     virtual SALOMEDS::SObject_ptr PasteInto(const SALOMEDS::TMPFile& theStream,
104             CORBA::Long theObjectID,
105             SALOMEDS::SObject_ptr theObject);
106   };
107 #endif