Salome HOME
7ce7e269cb650b576d43dc6c6388e1faafeff55d
[modules/kernel.git] / idl / SALOME_SDS.idl
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 : Anthony GEAY (EDF R&D)
21
22 #ifndef __SALOME_SDS_IDL__
23 #define __SALOME_SDS_IDL__
24
25 #include "SALOME_GenericObj.idl"
26 #include "SALOME_Exception.idl"
27 #include "SALOME_CommonTypes.idl"
28
29 module SALOME
30 {
31   typedef sequence<ByteVec> SeqOfByteVec;
32   
33   interface DataScopeServer;
34
35   interface BasicDataServer : GenericObj
36   {
37     DataScopeServer getMyDataScopeServer();
38     string getVarName();
39     string getScopeName();
40     long getRCValue();
41   };
42
43   interface PickelizedPyObjServer : BasicDataServer
44   {
45     ByteVec fetchSerializedContent() raises (SALOME::SALOME_Exception);
46   };
47
48   interface PickelizedPyObjRdOnlyServer : PickelizedPyObjServer
49   {
50   };
51
52   interface PickelizedPyObjRdExtBaseServer : PickelizedPyObjServer
53   {
54   };
55
56   interface PickelizedPyObjRdExtServer : PickelizedPyObjRdExtBaseServer
57   {
58     PickelizedPyObjRdExtServer invokePythonMethodOn(in string method, in ByteVec args) raises (SALOME::SALOME_Exception);
59   };
60
61   interface PickelizedPyObjRdExtInitServer : PickelizedPyObjRdExtBaseServer
62   {
63   };
64
65   interface PickelizedPyObjRdWrServer : PickelizedPyObjServer
66   {
67     void setSerializedContent(in ByteVec newValue) raises (SALOME::SALOME_Exception);
68     PickelizedPyObjRdWrServer invokePythonMethodOn(in string method, in ByteVec args) raises (SALOME::SALOME_Exception);
69   };
70
71   interface DataServerManager;
72
73   interface DataScopeKiller
74   {
75     void shutdown();
76   };
77
78   interface RequestSwitcherBase
79   {
80     void holdRequests();
81     void activeRequests();
82   };
83   
84   interface RequestSwitcher : RequestSwitcherBase
85   {
86     StringVec listVars();
87     ByteVec fetchSerializedContent(in string varName) raises (SALOME::SALOME_Exception);
88     void fetchAndGetAccessOfVar(in string varName, out string access, out ByteVec data) raises (SALOME::SALOME_Exception);
89   };
90
91   interface DataScopeServerTransaction;
92   
93   interface RequestSwitcherDSM : RequestSwitcherBase
94   {
95     StringVec listScopes();
96     DataScopeServerTransaction giveADataScopeTransactionCalled(in string scopeName, out boolean isCreated) raises (SALOME::SALOME_Exception);
97   };
98
99   interface DataScopeServerBase
100   {
101     void ping();
102     string getScopeName();
103     StringVec listVars();
104     boolean existVar(in string varName) raises (SALOME::SALOME_Exception);
105     void deleteVar(in string varName) raises (SALOME::SALOME_Exception);
106     boolean shutdownIfNotHostedByDSM(out DataScopeKiller killer) raises (SALOME::SALOME_Exception);
107     ByteVec fetchSerializedContent(in string varName) raises (SALOME::SALOME_Exception);
108     SeqOfByteVec getAllKeysOfVarWithTypeDict(in string varName) raises (SALOME::SALOME_Exception);
109     ByteVec getValueOfVarWithTypeDict(in string varName, in ByteVec constKey) raises (SALOME::SALOME_Exception);
110     void takeANap(in double napDurationInSec) raises (SALOME::SALOME_Exception);
111   };
112
113   interface DataScopeServer : DataScopeServerBase
114   {
115     BasicDataServer retrieveVar(in string varName) raises (SALOME::SALOME_Exception);
116     PickelizedPyObjRdOnlyServer createRdOnlyVar(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
117     PickelizedPyObjRdExtServer createRdExtVar(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
118   };
119
120   interface Transaction
121   {
122   };
123
124   interface TransactionRdWrAccess : Transaction
125   {
126     PickelizedPyObjRdWrServer getVar() raises (SALOME::SALOME_Exception);
127   };
128
129   interface TransactionMultiKeyAddSession : Transaction
130   {
131     void addKeyValueInVarErrorIfAlreadyExistingNow(in SALOME::ByteVec keyValue, in ByteVec constValue) raises (SALOME::SALOME_Exception);
132   };
133
134   typedef sequence<Transaction> ListOfTransaction;
135
136   interface KeyWaiter
137   {
138     void waitFor() raises (SALOME::SALOME_Exception);
139   };
140
141   interface DataScopeServerTransaction : DataScopeServerBase
142   {
143     string getAccessOfVar(in string varName) raises (SALOME::SALOME_Exception);
144     void fetchAndGetAccessOfVar(in string varName, out string access, out ByteVec data) raises (SALOME::SALOME_Exception);
145     Transaction createRdOnlyVarTransac(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
146     Transaction createRdExtVarTransac(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
147     Transaction createRdExtVarFreeStyleTransac(in string varName, in ByteVec constValue, in string compareFuncContent) raises (SALOME::SALOME_Exception);
148     Transaction createRdExtInitVarTransac(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
149     Transaction createRdWrVarTransac(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
150     Transaction addKeyValueInVarHard(in string varName, in ByteVec keyValue, in ByteVec constValue) raises (SALOME::SALOME_Exception);
151     Transaction addKeyValueInVarErrorIfAlreadyExisting(in string varName, in ByteVec keyValue, in ByteVec constValue) raises (SALOME::SALOME_Exception);
152     TransactionMultiKeyAddSession addMultiKeyValueSession(in string varName) raises (SALOME::SALOME_Exception);
153     Transaction removeKeyInVarErrorIfNotAlreadyExisting(in string varName, in ByteVec keyValue) raises (SALOME::SALOME_Exception);
154     TransactionRdWrAccess createWorkingVarTransac(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
155     Transaction killVarTransac(in string varName) raises (SALOME::SALOME_Exception);
156     KeyWaiter waitForKeyInVar(in string varName, in ByteVec keyVal) raises (SALOME::SALOME_Exception);
157     KeyWaiter waitForKeyInVarAndKillIt(in string varName, in ByteVec keyVal, out Transaction transac) raises (SALOME::SALOME_Exception);
158     void atomicApply(in ListOfTransaction transactions) raises (SALOME::SALOME_Exception);
159     ByteVec waitForMonoThrRev(in KeyWaiter kw) raises (SALOME::SALOME_Exception);
160     ByteVec waitForAndKill(in KeyWaiter kw) raises (SALOME::SALOME_Exception);
161     RequestSwitcher getRequestSwitcher();
162   };
163
164   interface DataServerManager
165   {
166     StringVec listScopes();
167     StringVec listAliveAndKickingScopes() raises (SALOME::SALOME_Exception);
168     DataScopeServer getDefaultScope() raises (SALOME::SALOME_Exception);
169     boolean isAliveAndKicking(in string scopeName) raises (SALOME::SALOME_Exception);
170     //
171     DataScopeServer createDataScope(in string scopeName) raises (SALOME::SALOME_Exception);
172     DataScopeServer giveADataScopeCalled(in string scopeName, out boolean isCreated) raises (SALOME::SALOME_Exception);
173     //
174     DataScopeServerTransaction createDataScopeTransaction(in string scopeName) raises (SALOME::SALOME_Exception);
175     DataScopeServerTransaction giveADataScopeTransactionCalled(in string scopeName, out boolean isCreated) raises (SALOME::SALOME_Exception);
176     //
177     DataScopeServerBase retriveDataScope(in string scopeName) raises (SALOME::SALOME_Exception);
178     void removeDataScope(in string scopeName) raises (SALOME::SALOME_Exception);
179     void cleanScopesInNS();
180     void shutdownScopes() raises (SALOME::SALOME_Exception);
181     RequestSwitcherDSM getRequestSwitcher();
182   };
183 };
184
185 #endif