Salome HOME
PR: mergefrom_BR_GEAY_05Nov04
[modules/yacs.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     Sender buildOtherWithProtocol(in TypeOfCommunication type);
24     void release();
25   };
26
27   //No compulsory copy between double and CORBA::Double
28   interface CorbaDoubleNCSender : Sender {
29     unsigned long getSize();
30     vectorOfDouble sendPart(in unsigned long n1,in unsigned long n2);
31     vectorOfDouble send();
32   };
33
34   //Compulsory copy between double and CORBA::Double
35   interface CorbaDoubleCSender : Sender {
36     unsigned long getSize();
37     //unsigned long getSize2();
38     vectorOfDouble sendPart(in unsigned long n1,in unsigned long n2);
39   };
40
41   //No compulsory copy between int and CORBA::Long
42   interface CorbaLongNCSender : Sender {
43     unsigned long getSize();
44     vectorOfLong sendPart(in unsigned long n1,in unsigned long n2);
45     vectorOfLong send();
46   };
47
48   //Compulsory copy between int and CORBA::Long
49   interface CorbaLongCSender : Sender {
50     unsigned long getSize();
51     vectorOfLong sendPart(in unsigned long n1,in unsigned long n2);
52   };
53
54   interface MPISender : Sender {
55     typedef struct Parameter {
56       unsigned long myproc;
57       unsigned long tag1;
58       unsigned long tag2;
59       string service;
60     } param;
61     param getParam();
62     void send();
63     void close(in param p);
64   };
65
66   interface SocketSender : Sender {
67     typedef struct Parameter {
68       unsigned long lstart;
69       unsigned long lend;
70       unsigned long myport;
71      string internet_address;
72     } param;
73     param getParam();
74     void initCom() raises(SALOME_Exception);
75     void acceptCom() raises(SALOME_Exception);
76     void closeCom();
77     void endOfCom() raises(SALOME_Exception);
78     void send();
79   };
80
81 };