1 #include "SALOME_Exception.idl"
5 enum TypeOfDataTransmitted { _DOUBLE_,_INT_ };
7 enum TypeOfCommunication { CORBA_ , MPI_ , SOCKET_ };
9 typedef sequence<double> vectorOfDouble;
11 typedef sequence<long> vectorOfLong;
13 interface MultiCommClass {
14 void setProtocol(in TypeOfCommunication typ);
17 interface ServantLifeCycle {
22 TypeOfDataTransmitted getTypeOfDataTransmitted();
26 interface SenderDouble : Sender {
27 SenderDouble buildOtherWithProtocol(in TypeOfCommunication type);
30 interface SenderInt : Sender {
31 SenderInt buildOtherWithProtocol(in TypeOfCommunication type);
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();
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);
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);
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);
61 interface MPISender : Sender {
62 typedef struct Parameter {
70 void close(in param p);
73 interface MPISenderDouble : SenderDouble,MPISender {
76 interface MPISenderInt : SenderInt,MPISender {
79 interface SocketSender : Sender {
80 typedef struct Parameter {
84 string internet_address;
87 void initCom() raises(SALOME_Exception);
88 void acceptCom() raises(SALOME_Exception);
90 void endOfCom() raises(SALOME_Exception);
94 interface SocketSenderDouble : SenderDouble,SocketSender {
97 interface SocketSenderInt : SenderInt,SocketSender {