00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef Channel_h
00027 #define Channel_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #include <ChannelAddress.h>
00045 #include <Message.h>
00046 #include <MovableObject.h>
00047 #include <Matrix.h>
00048 #include <Vector.h>
00049 #include <ID.h>
00050 #include <FEM_ObjectBroker.h>
00051
00270 class Channel
00271 {
00272 public:
00274 Channel ();
00275
00277 virtual ~Channel();
00278
00280 virtual char *addToProgram(void) =0;
00282 virtual int setUpShadow(void) =0;
00284 virtual int setUpActor(void) =0;
00286 virtual int setNextAddress(const ChannelAddress &theAddress) =0;
00288 virtual ChannelAddress *getLastSendersAddress(void) =0;
00289
00291 virtual int getDbTag(void);
00292
00294 virtual int sendObj(int commitTag,
00295 MovableObject &theObject,
00296 ChannelAddress *theAddress =0) =0;
00298 virtual int recvObj(int commitTag,
00299 MovableObject &theObject,
00300 FEM_ObjectBroker &theBroker,
00301 ChannelAddress *theAddress =0) =0;
00302
00304 virtual int sendMsg(int dbTag, int commitTag,
00305 const Message &theMessage,
00306 ChannelAddress *theAddress =0) =0;
00308 virtual int recvMsg(int dbTag, int commitTag,
00309 Message &theMessage,
00310 ChannelAddress *theAddress =0) =0;
00311
00313 virtual int sendMatrix(int dbTag, int commitTag,
00314 const Matrix &theMatrix,
00315 ChannelAddress *theAddress =0) =0;
00317 virtual int recvMatrix(int dbTag, int commitTag,
00318 Matrix &theMatrix,
00319 ChannelAddress *theAddress =0) =0;
00320
00322 virtual int sendVector(int dbTag, int commitTag,
00323 const Vector &theVector,
00324 ChannelAddress *theAddress =0) =0;
00326 virtual int recvVector(int dbTag, int commitTag,
00327 Vector &theVector,
00328 ChannelAddress *theAddress =0) =0;
00329
00331 virtual int sendID(int dbTag, int commitTag,
00332 const ID &theID,
00333 ChannelAddress *theAddress =0) =0;
00335 virtual int recvID(int dbTag, int commitTag,
00336 ID &theID,
00337 ChannelAddress *theAddress =0) =0;
00338
00339 protected:
00340
00341 private:
00342 };
00343
00344 #endif