4 #include "SALOME_Comm_i.hxx"
6 /*! Abstract class factorizing common methods of all the receivers. All of the receivers have to inheritate from it.
8 template<class T,class senderPtr, class senderSrv>
12 virtual T *getValue(long &size)=0;
13 virtual ~Receiver() {}
15 virtual T *getValue(long &size,senderPtr sender);
16 static inline T *getLocalValue(long &size,senderSrv* servant);
17 virtual T *getDistValue(long &size)=0;
20 template<class T,class senderPtr, class senderSrv>
21 T *Receiver<T,senderPtr,senderSrv>::getLocalValue(long &size,senderSrv* servant)
23 const T *src=(const T *)servant->getData(size);
24 long lgr=size*servant->getSizeOf();
25 void *ret=new char[lgr];
28 //return (void *)servant->getData(size);
31 template<class T,class senderPtr, class senderSrv>
32 T *Receiver<T,senderPtr,senderSrv>::getValue(long &size,senderPtr sender)
34 senderSrv* data=senderSrv::find(sender);
36 return getLocalValue(size,data);
38 return getDistValue(size);