Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

Channel.h

Go to the documentation of this file.
00001 /* ****************************************************************** **
00002 **    OpenSees - Open System for Earthquake Engineering Simulation    **
00003 **          Pacific Earthquake Engineering Research Center            **
00004 **                                                                    **
00005 **                                                                    **
00006 ** (C) Copyright 1999, The Regents of the University of California    **
00007 ** All Rights Reserved.                                               **
00008 **                                                                    **
00009 ** Commercial use of this program without express permission of the   **
00010 ** University of California, Berkeley, is strictly prohibited.  See   **
00011 ** file 'COPYRIGHT'  in main directory for information on usage and   **
00012 ** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
00013 **                                                                    **
00014 ** Developed by:                                                      **
00015 **   Frank McKenna (fmckenna@ce.berkeley.edu)                         **
00016 **   Gregory L. Fenves (fenves@ce.berkeley.edu)                       **
00017 **   Filip C. Filippou (filippou@ce.berkeley.edu)                     **
00018 **                                                                    **
00019 ** ****************************************************************** */
00020                                                                         
00021 // $Revision: 1.1.1.1 $
00022 // $Date: 2000/09/15 08:23:15 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/actor/channel/Channel.h,v $
00024                                                                         
00025                                                                         
00026 #ifndef Channel_h
00027 #define Channel_h
00028 
00029 // File: ~/actor/channel/Channel.h
00030 //
00031 // Written: fmk
00032 // Created: 11/96
00033 // Revision: A
00034 //
00035 // Purpose: This file contains the class definition for Channel.
00036 // Channel is an abstract base class which defines the channel interface.
00037 // A channel is a point of communication in a program, a mailbox to/from
00038 // which data enters/leaves a program.
00039 //
00040 // What: "@(#) Channel.h, revA"
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
Copyright Contact Us