1 #ifndef _SALOME_COMM_IDL_
2 #define _SALOME_COMM_IDL_
4 #include "SALOME_Exception.idl"
8 enum TypeOfDataTransmitted { _DOUBLE_,_INT_ };
10 enum TypeOfCommunication { CORBA_ , MPI_ , SOCKET_ };
12 typedef sequence<double> vectorOfDouble;
14 typedef sequence<long> vectorOfLong;
16 interface MultiCommClass {
17 void setProtocol(in TypeOfCommunication typ);
20 interface ServantLifeCycle {
25 TypeOfDataTransmitted getTypeOfDataTransmitted();
29 interface SenderDouble : Sender {
30 SenderDouble buildOtherWithProtocol(in TypeOfCommunication type);
33 interface SenderInt : Sender {
34 SenderInt buildOtherWithProtocol(in TypeOfCommunication type);
37 //No compulsory copy between double and CORBA::Double
38 interface CorbaDoubleNCSender : SenderDouble {
39 unsigned long getSize();
40 vectorOfDouble sendPart(in unsigned long n1,in unsigned long n2);
41 vectorOfDouble send();
44 //Compulsory copy between double and CORBA::Double
45 interface CorbaDoubleCSender : SenderDouble {
46 unsigned long getSize();
47 //unsigned long getSize2();
48 vectorOfDouble sendPart(in unsigned long n1,in unsigned long n2);
51 //No compulsory copy between int and CORBA::Long
52 interface CorbaLongNCSender : SenderInt {
53 unsigned long getSize();
54 vectorOfLong sendPart(in unsigned long n1,in unsigned long n2);
58 //Compulsory copy between int and CORBA::Long
59 interface CorbaLongCSender : SenderInt {
60 unsigned long getSize();
61 vectorOfLong sendPart(in unsigned long n1,in unsigned long n2);
64 interface MPISender : Sender {
65 typedef struct Parameter {
73 void close(in param p);
76 interface MPISenderDouble : SenderDouble,MPISender {
79 interface MPISenderInt : SenderInt,MPISender {
82 interface SocketSender : Sender {
83 typedef struct Parameter {
87 string internet_address;
90 void initCom() raises(SALOME_Exception);
91 void acceptCom() raises(SALOME_Exception);
93 void endOfCom() raises(SALOME_Exception);
97 interface SocketSenderDouble : SenderDouble,SocketSender {
100 interface SocketSenderInt : SenderInt,SocketSender {