Salome HOME
Porting to Mandrake 10.1 and new products:
[modules/kernel.git] / idl / SALOME_Comm.idl
1 #include "SALOME_Exception.idl"
2
3 module SALOME {
4   
5   enum TypeOfDataTransmitted { _DOUBLE_,_INT_ };
6
7   enum TypeOfCommunication { CORBA_ , MPI_ , SOCKET_ };
8
9   typedef sequence<double> vectorOfDouble;
10   
11   typedef sequence<long> vectorOfLong;
12   
13   interface MultiCommClass {
14     void setProtocol(in TypeOfCommunication typ);
15   };
16
17   interface ServantLifeCycle {
18     void release();
19   };
20
21   interface Sender {
22     TypeOfDataTransmitted getTypeOfDataTransmitted();
23     void release();
24   };
25
26   interface SenderDouble : Sender {
27     SenderDouble buildOtherWithProtocol(in TypeOfCommunication type);
28   };
29
30   interface SenderInt : Sender {
31     SenderInt buildOtherWithProtocol(in TypeOfCommunication type);
32   };
33
34   //No compulsory copy between double and CORBA::Double
35   interface CorbaDoubleNCSender : SenderDouble {
36     unsigned long getSize();
37     vectorOfDouble sendPart(in unsigned long n1,in unsigned long n2);
38     vectorOfDouble send();
39   };
40
41   //Compulsory copy between double and CORBA::Double
42   interface CorbaDoubleCSender : SenderDouble {
43     unsigned long getSize();
44     //unsigned long getSize2();
45     vectorOfDouble sendPart(in unsigned long n1,in unsigned long n2);
46   };
47
48   //No compulsory copy between int and CORBA::Long
49   interface CorbaLongNCSender : SenderInt {
50     unsigned long getSize();
51     vectorOfLong sendPart(in unsigned long n1,in unsigned long n2);
52     vectorOfLong send();
53   };
54
55   //Compulsory copy between int and CORBA::Long
56   interface CorbaLongCSender : SenderInt {
57     unsigned long getSize();
58     vectorOfLong sendPart(in unsigned long n1,in unsigned long n2);
59   };
60
61   interface MPISender : Sender {
62     typedef struct Parameter {
63       unsigned long myproc;
64       unsigned long tag1;
65       unsigned long tag2;
66       string service;
67     } param;
68     param getParam();
69     void send();
70     void close(in param p);
71   };
72
73   interface MPISenderDouble : SenderDouble,MPISender {
74   };
75
76   interface MPISenderInt : SenderInt,MPISender {
77   };
78
79   interface SocketSender : Sender {
80     typedef struct Parameter {
81       unsigned long lstart;
82       unsigned long lend;
83       unsigned long myport;
84      string internet_address;
85     } param;
86     param getParam();
87     void initCom() raises(SALOME_Exception);
88     void acceptCom() raises(SALOME_Exception);
89     void closeCom();
90     void endOfCom() raises(SALOME_Exception);
91     void send();
92   };
93
94   interface SocketSenderDouble : SenderDouble,SocketSender {
95   };
96
97   interface SocketSenderInt : SenderInt,SocketSender {
98   };
99 };