summaryrefslogtreecommitdiffstats
path: root/clientcomm/rpcif.x
blob: 1bf9efbfdee00791074540224ceaceadb9c17ea0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/

typedef opaque confarray<>;

struct RPCMarray
{
  string         domain<>;
  unsigned long  cellTypeLength;
  unsigned short currentFormat;
  unsigned short storageFormat;
  confarray      data;
};

struct RPCClientEntry
{
  unsigned long clientId;
  string        clientIdText<>;
  string        userName<>;
  string        baseName<>;
  unsigned long creationTime;
  unsigned long lastActionTime;
  unsigned long transferColl;
  unsigned long transferIter;
  unsigned long assembleMDD;
  unsigned long transferMDD;
  unsigned long transTiles;
  unsigned long tileIter;
  unsigned long bytesToTransfer;
};

struct RPCOIdEntry
{
  string        oid<>;
};

/* special definitions for rpcOpenDB */
struct OpenDBParams
{
  string dbName<>;
  string userName<>;
  string capability<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
struct OpenDBRes
{
  unsigned short status;
  unsigned long  clientID;
};

/* special definitions for rpcBeginTA */
struct BeginTAParams
{
  unsigned long  clientID;
  unsigned short readOnly;
  string capability<>;
};

/* special definitions for rpcExecuteQuery */
struct ExecuteQueryParams
{
  unsigned long clientID;
  string        query<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
struct ExecuteQueryRes
{
  unsigned short status;
  unsigned long  errorNo;
  unsigned long  lineNo;
  unsigned long  columnNo;
  string         token<>;
  string         typeName<>;
  string         typeStructure<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
struct ExecuteUpdateRes
{
  unsigned short status;
  unsigned long  errorNo;
  unsigned long  lineNo;
  unsigned long  columnNo;
  string         token<>;
};

/* special definitions for rpcInsertColl */
struct InsertCollParams
{
  unsigned long clientID;
  string        collName<>;
  string        typeName<>;
  string        oid<>;
};

/* special definitions for rpcGetCollByName, rpcDeleteCollByName */
struct NameSpecParams
{
  unsigned long clientID;
  string        name<>;
};

/* special definitions for rpcGetCollByOId, rpcDeleteCollByOId */
struct OIdSpecParams
{
  unsigned long clientID;
  string        oid<>;
};

/* special definitions for rpcRemoveObjFromColl */
struct RemoveObjFromCollParams
{
  unsigned long clientID;
  string        collName<>;
  string        oid<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcGetCollByName, rpcGetCollByOId */
struct GetCollRes
{
  unsigned short status;
  string         typeName<>;
  string         typeStructure<>;
  string         oid<>;
  string         collName<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcGetCollOIdsByName, rpcGetCollOIdsByOId */
struct GetCollOIdsRes
{
  unsigned short status;
  string         typeName<>;
  string         typeStructure<>;
  string         oid<>;
  string         collName<>;

  RPCOIdEntry    oidTable<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcGetNextMDD */
struct GetMDDRes
{
  unsigned short status;
  string         domain<>;
  string         typeName<>;
  string         typeStructure<>;
  string         oid<>;
  unsigned short currentFormat;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcGetNextTile */
struct GetTileRes
{
  unsigned short status;
  RPCMarray*     marray;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcGetNewOid */
struct OIdRes
{
  unsigned short status;
  string         oid<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcGetObjectType */
struct ObjectTypeRes
{
  unsigned short status;
  unsigned short objType;
};

/* special definitions for rpcInsertMDD */
struct InsertMDDParams
{
  unsigned long clientID;
  string        collName<>;
  string        typeName<>;
  string        oid<>;
  RPCMarray*    marray;
};

/* special definitions for rpcInsertTile */
struct InsertTileParams
{
  unsigned long clientID;
  int           isPersistent;
  RPCMarray*    marray;
};

/* special definitions for rpcEndInsertMDD */
struct EndInsertMDDParams
{
  unsigned long clientID;
  int           isPersistent;
};

/* special definitions for rpcStartInsertTransMDD */
struct InsertTransMDDParams
{
  unsigned long clientID;
  string        collName<>;
  string        domain<>;
  unsigned long typeLength;
  string        typeName<>;
};


/* special definitions for rpcStartInsertPersMDD */
struct InsertPersMDDParams
{
  unsigned long clientID;
  string        collName<>;
  string        domain<>;
  unsigned long typeLength;
  string        typeName<>;
  string        oid<>;
};


/* special definitions for rpcGetNewOid */
struct NewOIdParams
{
  unsigned long  clientID;
  unsigned short objType;
};


/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcServerStat*/
struct ServerStatRes
{
  unsigned short status;
  unsigned long  inactivityTimeout;
  unsigned long  managementInterval;
  unsigned long  transactionActive;
  unsigned long  maxTransferBufferSize;
  unsigned long  nextClientId;
  unsigned long  clientNumber;

  unsigned long  memArena;
  unsigned long  memSmblks;
  unsigned long  memOrdblks;
  unsigned long  memFordblks;
  unsigned long  memUordblks;
  
  RPCClientEntry clientTable<>;
};


/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcGetServerVersion */
struct ServerVersionRes
{
  unsigned short status;
  double serverVersionNo;
  double rpcInterfaceVersionNo;
};


/* special definitions for rpcGetTypeStructure */
struct GetTypeStructureParams
{
  unsigned long  clientID;
  string         typeName<>;
  unsigned short typeType;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
struct GetTypeStructureRes
{
  unsigned short status;
  string         typeStructure<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* special definitions for rpcGetNextElement */
struct GetElementRes
{
  unsigned short status;
  confarray      data;
};

/* for setting the transfer data format in the server */
struct SetServerTransferParams
{
  unsigned long  clientID;
  unsigned short format;
  string         formatParams<>;
};

/*Every return structure has to have unsigned short (the status variable) as its first elment!*/
/*This is due to the patching of the rpc server communication code*/
/* for the getExtendedErrorInfo function*/
struct GetExtendedErrorInfo
{
  unsigned short status;
  string         errorText<>;
};

program RPCIF
{
  version RPCIFVERS
  {
    /* server system calls */
    ServerVersionRes     RPCGETSERVERVERSION    ( int )                        =  1;
    u_short		RPCSHUTDOWN            ( int )                        =  2;
    ServerStatRes        RPCSERVERSTAT          ( int )                        =  3;
    u_short		RPCKILLTABLEENTRY      ( unsigned long )              =  4;
    unsigned short       RPCALIVE               ( unsigned long )              =  5;

    /* Db calls */
    OpenDBRes            RPCOPENDB              ( OpenDBParams )               =  6;
    unsigned short       RPCCLOSEDB             ( unsigned long )              =  7;
    unsigned short       RPCCREATEDB            ( string )                     =  8;
    unsigned short       RPCDESTROYDB           ( string )                     =  9;

    /* TA calls */
    unsigned short       RPCBEGINTA             ( BeginTAParams )              = 10;
    unsigned short       RPCCOMMITTA            ( unsigned long )              = 11;
    unsigned short       RPCABORTTA             ( unsigned long )              = 12;

    /* Query */
    ExecuteQueryRes      RPCEXECUTEQUERY        ( ExecuteQueryParams )         = 13;

    /* Get MDDs of a query by OId */
    GetMDDRes            RPCGETNEXTMDD          ( unsigned long )              = 14;
    GetMDDRes            RPCGETMDDBYOID         ( OIdSpecParams )              = 15;
    GetTileRes           RPCGETNEXTTILE         ( unsigned long )              = 16;
    unsigned short       RPCENDTRANSFER         ( unsigned long )              = 17;

    /* Update */
    unsigned short       RPCINITEXECUTEUPDATE   ( unsigned long )              = 18;
    ExecuteUpdateRes     RPCEXECUTEUPDATE       ( ExecuteQueryParams )         = 19;

    /* insert a transient/persistent MDD tile by tile */
    unsigned short       RPCSTARTINSERTTRANSMDD ( InsertTransMDDParams )       = 20;
    unsigned short       RPCSTARTINSERTPERSMDD  ( InsertPersMDDParams )        = 21;
    unsigned short       RPCINSERTTILE          ( InsertTileParams )           = 22;
    unsigned short       RPCENDINSERTMDD        ( EndInsertMDDParams )         = 23;

    /* insert a persistent MDD at once */
    unsigned short       RPCINSERTMDD           ( InsertMDDParams )            = 24;

    /* get whole collection (updated) */
    GetCollRes           RPCGETCOLLBYNAME       ( NameSpecParams )             = 25;
    GetCollRes           RPCGETCOLLBYOID        ( OIdSpecParams )              = 26;

    /* get collection references */
    GetCollOIdsRes       RPCGETCOLLOIDSBYNAME   ( NameSpecParams )             = 27;
    GetCollOIdsRes       RPCGETCOLLOIDSBYOID    ( OIdSpecParams )              = 28;

    /* insert collection */
    unsigned short       RPCINSERTCOLL          ( InsertCollParams )           = 29;

    /* delete */
    unsigned short       RPCDELETECOLLBYNAME    ( NameSpecParams )             = 30;
    unsigned short       RPCDELETEOBJBYOID      ( OIdSpecParams )              = 31;

    /* delete MDD from collection */
    unsigned short       RPCREMOVEOBJFROMCOLL   ( RemoveObjFromCollParams )    = 32; 

    /* get new OId */
    OIdRes               RPCGETNEWOID           ( NewOIdParams )               = 33;

    /* get object type */
    ObjectTypeRes        RPCGETOBJECTTYPE       ( OIdSpecParams )              = 34;

    /* Type */
    GetTypeStructureRes  RPCGETTYPESTRUCTURE    ( GetTypeStructureParams )     = 35;

    /* Get non-MDD data */
    GetElementRes        RPCGETNEXTELEMENT      ( unsigned long )              = 36;

    /* Get the server's endianness */
    int                  RPCGETSERVERENDIAN     ( int )                        = 37;

    /* Make the server transfer MDD in the r_Data_Format passed as param */
    unsigned short       RPCSETSERVERTRANSFER   ( SetServerTransferParams )    = 38;
    
    /* Get extended error information */
    GetExtendedErrorInfo  RPCGETERRORINFO        ( void )                       = 39;

    /* Make the server store MDD in the r_Data_Format passed as param */
    unsigned short       RPCSETSERVERSTORAGE    ( SetServerTransferParams )    = 40;

  } = 1;

} = 0x29999999;  /* program number ranges established by ONC */