]> SALOME platform Git repositories - modules/kernel.git/blob - idl/SALOME_SDS.idl
Salome HOME
Implementation of launch of external from SALOME processes
[modules/kernel.git] / idl / SALOME_SDS.idl
1 // Copyright (C) 2007-2019  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<octet> ByteVec;
32   typedef sequence<ByteVec> SeqOfByteVec;
33   
34   interface DataScopeServer;
35
36   interface BasicDataServer : GenericObj
37   {
38     DataScopeServer getMyDataScopeServer();
39     string getVarName();
40     string getScopeName();
41     long getRCValue();
42   };
43
44   interface PickelizedPyObjServer : BasicDataServer
45   {
46     ByteVec fetchSerializedContent() raises (SALOME::SALOME_Exception);
47   };
48
49   interface PickelizedPyObjRdOnlyServer : PickelizedPyObjServer
50   {
51   };
52
53   interface PickelizedPyObjRdExtBaseServer : PickelizedPyObjServer
54   {
55   };
56
57   interface PickelizedPyObjRdExtServer : PickelizedPyObjRdExtBaseServer
58   {
59     PickelizedPyObjRdExtServer invokePythonMethodOn(in string method, in ByteVec args) raises (SALOME::SALOME_Exception);
60   };
61
62   interface PickelizedPyObjRdExtInitServer : PickelizedPyObjRdExtBaseServer
63   {
64   };
65
66   interface PickelizedPyObjRdWrServer : PickelizedPyObjServer
67   {
68     void setSerializedContent(in ByteVec newValue) raises (SALOME::SALOME_Exception);
69     PickelizedPyObjRdWrServer invokePythonMethodOn(in string method, in ByteVec args) raises (SALOME::SALOME_Exception);
70   };
71
72   interface DataServerManager;
73
74   interface DataScopeKiller
75   {
76     void shutdown();
77   };
78
79   interface RequestSwitcherBase
80   {
81     void holdRequests();
82     void activeRequests();
83   };
84   
85   interface RequestSwitcher : RequestSwitcherBase
86   {
87     StringVec listVars();
88     ByteVec fetchSerializedContent(in string varName) raises (SALOME::SALOME_Exception);
89     void fetchAndGetAccessOfVar(in string varName, out string access, out ByteVec data) raises (SALOME::SALOME_Exception);
90   };
91
92   interface DataScopeServerTransaction;
93   
94   interface RequestSwitcherDSM : RequestSwitcherBase
95   {
96     StringVec listScopes();
97     DataScopeServerTransaction giveADataScopeTransactionCalled(in string scopeName, out boolean isCreated) raises (SALOME::SALOME_Exception);
98   };
99
100   interface DataScopeServerBase
101   {
102     void ping();
103     string getScopeName();
104     StringVec listVars();
105     boolean existVar(in string varName) raises (SALOME::SALOME_Exception);
106     void deleteVar(in string varName) raises (SALOME::SALOME_Exception);
107     boolean shutdownIfNotHostedByDSM(out DataScopeKiller killer) raises (SALOME::SALOME_Exception);
108     ByteVec fetchSerializedContent(in string varName) raises (SALOME::SALOME_Exception);
109     SeqOfByteVec getAllKeysOfVarWithTypeDict(in string varName) 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