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

Channel Class Reference

#include <Channel.h>

Inheritance diagram for Channel::

FE_Datastore MPI_Channel TCP_Socket UDP_Socket FileDatastore List of all members.

Public Methods

 Channel ()
virtual ~Channel ()
virtual char* addToProgram (void)=0
 methods to set up the channel in an actor space. More...

virtual int setUpShadow (void)=0
virtual int setUpActor (void)=0
virtual int setNextAddress (const ChannelAddress &theAddress)=0
virtual ChannelAddressgetLastSendersAddress (void)=0
virtual int getDbTag (void)
virtual int sendObj (int commitTag, MovableObject &theObject, ChannelAddress *theAddress=0)=0
 methods to send/receive messages and objects on channels. More...

virtual int recvObj (int commitTag, MovableObject &theObject, FEM_ObjectBroker &theBroker, ChannelAddress *theAddress=0)=0
virtual int sendMsg (int dbTag, int commitTag, const Message &theMessage, ChannelAddress *theAddress=0)=0
virtual int recvMsg (int dbTag, int commitTag, Message &theMessage, ChannelAddress *theAddress=0)=0
virtual int sendMatrix (int dbTag, int commitTag, const Matrix &theMatrix, ChannelAddress *theAddress=0)=0
virtual int recvMatrix (int dbTag, int commitTag, Matrix &theMatrix, ChannelAddress *theAddress=0)=0
virtual int sendVector (int dbTag, int commitTag, const Vector &theVector, ChannelAddress *theAddress=0)=0
virtual int recvVector (int dbTag, int commitTag, Vector &theVector, ChannelAddress *theAddress=0)=0
virtual int sendID (int dbTag, int commitTag, const ID &theID, ChannelAddress *theAddress=0)=0
virtual int recvID (int dbTag, int commitTag, ID &theID, ChannelAddress *theAddress=0)=0

Detailed Description

Channel is an abstract class, i.e. no instances of Channel should exist. A Channel is a point of communication in a program, a mailbox to/from which data enters/leaves a program. Channels are objects through which the objects in the current processes address space can interact with objects in another processes address space. A channel in one process space is associated with a channel in the address space of another process space. The interaction is in the form of data sent between the two processes along the connection line. \

Constructor \ {Channel();} \ \ Destructor \ {virtual~ Channel();}\ \ Public Methods \ {char *addToProgram(void) =0;} \ {virtual int setUpShadow(void) =0;} \ {virtual int setUpActor(void) =0;} \ {virtual int setNextAddress(ChannelAddress &theNextAddress) =0;}\ {virtual ChannelAddress *getLastSendersAddress(void) =0;}\ {virtual int getDbTag(void);} \

{int sendObj(int commitTag, \ MovableObject &theObject, \ ChannelAddress *theAddress =0) =0;}\ {int recvObj(int commitTag, \ MovableObject &theObject, \ FEM\_ObjectBroker &theBroker, \ ChannelAddress *theAddress =0) =0;}\

{int sendMsg(int dbTag, int commitTag, \ const Message &, \ ChannelAddress *theAddress =0) =0;}\ {int recvMsg(int dbTag, int commitTag, \ Message &, \ ChannelAddress *theAddress =0) =0;}\ {int sendMatrix(int dbTag, int commitTag, \ const Matrix &theMatrix, \ ChannelAddress *theAddress =0) =0;}\ {int recvMatrix(int dbTag, int commitTag, \ Matrix &theMatrix, \ ChannelAddress *theAddress =0) =0;}\ {int sendVector(int dbTag, int commitTag, \ const Vector &theVector, \ ChannelAddress *theAddress =0) =0;}\ {int recvVector(int dbTag, int commitTag, \ Vector &theVector, \ ChannelAddress *theAddress =0) =0;}\ {int sendID(int dbTag, int commitTag, \ const ID &theID, \ ChannelAddress *theAddress =0) =0;}\ {int recvID(int dbTag, int commitTag, \ ID &theID, \ ChannelAddress *theAddress =0) =0;}\

{\bf Constructor} \ {Channel();} \ Does nothing. \

{\bf Destructor} \ {virtual~ Channel();}\ Does nothing. Provided so that a subclasses destructor will be invoked. \

{\bf Public Methods} \ {char *addToProgram(void) =0;} \ When creating remote actors the channels created in the actor space need to know how to contact the shadows channels. This information is provided in the string returned from this method. It is used by the machine broker when starting the remote process. It places this information as the last arguments to the program. \

{virtual int setUpShadow(void) =0;} \ A method invoked in the local address space by a shadow object. The method is to be invoked concurrently with a {setUpShadow()} invocation on a channel object in all the remote actor processes.\

{virtual int setUpActor(void) =0;} \ A method invoked in the remote address space by the actor. The method is invoked concurrently with a corresponding {setUpShadow()} invocation on a channel in a local actor process by the shadow object that created the running actor process. If the method fails returns a negative number. For actors with only one Channel this should cause the termination of the actor. \

{virtual int setNextAddress(ChannelAddress &theNextAddress) =0;}\ A method invoked to set specify the next address that the next messages to be sent if {sendMessage()} or received if {recvMessage()} is invoked with a null pointer. \

{virtual int getDbTag(void);} \ To return the next available database tag, must be an integer value greater than , is used my the objects to check if they have yet been assigned a database tag. The method defined for the Channel base class always returns , only database channel objects need worry about assigning unique integer values. \

{int sendObj(int commitTag, \ MovableObject &theObject, \ ChannelAddress theAddress =0) =0;}\ To send the object {theObject} and the commit tag {commitTag} to a remote Channel whose address is given by {theAddress}. If {theAddress} is , the Channel sends to the Channel with the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int recvObj(int commitTag, \ MovableObject &theObject, \ FEM\_ObjectBroker &theBroker, \ ChannelAddress theAddress =0) =0;}\ To receive the object {theObject} with the commit tag {commitTag} from a remote Channel whose address is given by {theAddress}. If {theAddress} is , the Channel receives from the Channel with the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int sendMsg(int dbTag, int commitTag, \ const Message &theMessage, \ ChannelAddress *theAddress =0) =0;}\ A method which is invoked to send the data in the Message object {theMessage} to another Channel object. The object will obtain the data and size of the data to be sent by invoking {getData()} and {getSize()} on {theMessage}. The channel object is then responsible for sending that data to the remote channel address given by {theAddress}. If {theAddress} is , the Channel sends to the Channel with the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int recvMsg(int dbTag, int commitTag, \ Message & theMessage, \ ChannelAddress *theAddress =0) =0;}\ A method which is invoked to send the data in the Message object {theMessage} to another Channel object. The object will obtain the the size of the data that is being received by invoking {getSize()} on {theMessage}. The channel object is then responsible for receiving that amount of data from the channel whose address is given by {theAddress}. If {theAddress} is , the Channel receives from the Channel with the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int sendMatrix(int dbTag, int commitTag, \ const Matrix &theMatrix, \ ChannelAddress *theAddress =0) =0;}\ A method for sending a Matrix {theMatrix} to a remote Channel, whose address is given by {theAddress}, with the integer identifiers {dbTag} and {commitTag}. If {theAddress} is , the Channel sends to the Channel with the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int recvMatrix(int dbTag, int commitTag, \ Matrix &theMatrix, \ ChannelAddress *theAddress =0) =0;}\ A method for receiving a Matrix {theMatrix} from a remote Channel, whose address is given by {theAddress}, with the integer identifiers {dbTag} and {commitTag}. If {theAddress} is , the Channel receives from the Channel at the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int sendVector(int dbTag, int commitTag, \ const Vector &theVector, \ ChannelAddress *theAddress =0) =0;}\ A method for sending a Vector {theVector} to a remote Channel, whose address is given by {theAddress}, with the integer identifiers {dbTag} and {commitTag}. If {theAddress} is , the Channel sends to the Channel with the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int recvVector(int dbTag, int commitTag, \ Vector &theVector, \ ChannelAddress *theAddress =0) =0;}\ A method for receiving a Vector {theVector} from a remote Channel, whose address is given by {theAddress}, with the integer identifiers {dbTag} and {commitTag}. If {theAddress} is , the Channel receives from the Channel at the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int sendID(int dbTag, int commitTag, \ const ID &theID, \ ChannelAddress *theAddress =0) =0;}\ A method for sending a ID {theID} to a remote Channel, whose address is given by {theAddress}, with the integer identifiers {dbTag} and {commitTag}. If {theAddress} is , the Channel sends to the Channel with the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not. \

{int recvID(int dbTag, int commitTag, \ ID &theID, \ ChannelAddress *theAddress =0) =0;}\ A method for receiving a ID {theID} from a remote Channel, whose address is given by {theAddress}, with the integer identifiers {dbTag} and {commitTag}. If {theAddress} is , the Channel receives from the Channel at the address last set in a {send..()}, {recv..()}, or {setNextAddress()} operation. To return if successful, a negative number if not.

Definition at line 270 of file Channel.h.


Constructor & Destructor Documentation

Channel::Channel ( )
 

Definition at line 41 of file Channel.cpp.

Channel::~Channel ( ) [virtual]
 

Definition at line 46 of file Channel.cpp.


Member Function Documentation

char * Channel::addToProgram ( void ) [pure virtual]
 

methods to set up the channel in an actor space.

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

int Channel::getDbTag ( void ) [virtual]
 

Reimplemented in FE_Datastore, and FileDatastore.

Definition at line 52 of file Channel.cpp.

Referenced by ZeroLengthSection::sendSelf(), ZeroLengthND::sendSelf(), ZeroLength::sendSelf(), TrussSection::sendSelf(), Truss::sendSelf(), SectionAggregator::sendSelf(), PathTimeSeries::sendSelf(), PathSeries::sendSelf(), ParallelMaterial::sendSelf(), Node::sendSelf(), NLBeamColumn3d::sendSelf(), NLBeamColumn2d::sendSelf(), MP_Constraint::sendSelf(), LoadPattern::sendSelf(), GenericSectionNd::sendSelf(), GenericSection1d::sendSelf(), FourNodeQuad::sendSelf(), FiberSection3d::sendSelf(), FiberSection2d::sendSelf(), ElasticBeam3d::sendSelf(), ElasticBeam2d::sendSelf(), Domain::sendSelf(), BeamWithHinges3d::sendSelf(), and BeamWithHinges2d::sendSelf().

ChannelAddress * Channel::getLastSendersAddress ( void ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, and TCP_Socket.

Referenced by Actor::Actor(), and Shadow::Shadow().

int Channel::recvID ( int dbTag,
int commitTag,
ID & theID,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::recvID(), Actor::recvID(), ZeroLengthSection::recvSelf(), ZeroLengthND::recvSelf(), ZeroLength::recvSelf(), TrussSection::recvSelf(), Truss::recvSelf(), SectionAggregator::recvSelf(), ParallelMaterial::recvSelf(), Node::recvSelf(), NodalLoad::recvSelf(), NLBeamColumn3d::recvSelf(), NLBeamColumn2d::recvSelf(), NewtonRaphson::recvSelf(), NewtonLineSearch::recvSelf(), MP_Constraint::recvSelf(), ModifiedNewton::recvSelf(), LoadPattern::recvSelf(), GenericSectionNd::recvSelf(), GenericSection1d::recvSelf(), FourNodeQuad::recvSelf(), FiberSection3d::recvSelf(), FiberSection2d::recvSelf(), DomainDecompositionAnalysis::recvSelf(), Domain::recvSelf(), DOF_Numberer::recvSelf(), BeamWithHinges3d::recvSelf(), and BeamWithHinges2d::recvSelf().

int Channel::recvMatrix ( int dbTag,
int commitTag,
Matrix & theMatrix,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::recvMatrix(), Actor::recvMatrix(), ZeroLengthSection::recvSelf(), ZeroLengthND::recvSelf(), ZeroLength::recvSelf(), Node::recvSelf(), and MP_Constraint::recvSelf().

int Channel::recvMsg ( int dbTag,
int commitTag,
Message & msg,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::recvMessage(), and Actor::recvMessage().

int Channel::recvObj ( int commitTag,
MovableObject & theObject,
FEM_ObjectBroker & theBroker,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::recvObject(), and Actor::recvObject().

int Channel::recvVector ( int dbTag,
int commitTag,
Vector & theVector,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by ViscousMaterial::recvSelf(), TrussSection::recvSelf(), Truss::recvSelf(), TrigSeries::recvSelf(), Steel01::recvSelf(), SP_Constraint::recvSelf(), SectionAggregator::recvSelf(), RectangularSeries::recvSelf(), PDeltaCrdTransf3d::recvSelf(), PDeltaCrdTransf2d::recvSelf(), PathTimeSeries::recvSelf(), PathSeries::recvSelf(), ParallelMaterial::recvSelf(), Node::recvSelf(), NodalLoad::recvSelf(), NLBeamColumn3d::recvSelf(), NLBeamColumn2d::recvSelf(), NewtonLineSearch::recvSelf(), Newmark::recvSelf(), MinUnbalDispNorm::recvSelf(), LoadPattern::recvSelf(), LoadControl::recvSelf(), LinearSeries::recvSelf(), LinearCrdTransf3d::recvSelf(), LinearCrdTransf2d::recvSelf(), HHT::recvSelf(), HardeningMaterial::recvSelf(), FourNodeQuad::recvSelf(), FiberSection3d::recvSelf(), FiberSection2d::recvSelf(), ElasticSection3d::recvSelf(), ElasticSection2d::recvSelf(), ElasticPPMaterial::recvSelf(), ElasticMaterial::recvSelf(), ElasticIsotropic3D::recvSelf(), ElasticBeam3d::recvSelf(), ElasticBeam2d::recvSelf(), Domain::recvSelf(), CTestNormUnbalance::recvSelf(), CTestNormDispIncr::recvSelf(), CTestEnergyIncr::recvSelf(), ConstantSeries::recvSelf(), Concrete01::recvSelf(), BeamWithHinges3d::recvSelf(), BeamWithHinges2d::recvSelf(), ArcLength::recvSelf(), Shadow::recvVector(), and Actor::recvVector().

int Channel::sendID ( int dbTag,
int commitTag,
const ID & theID,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::sendID(), Actor::sendID(), ZeroLengthSection::sendSelf(), ZeroLengthND::sendSelf(), ZeroLength::sendSelf(), TrussSection::sendSelf(), Truss::sendSelf(), SectionAggregator::sendSelf(), ParallelMaterial::sendSelf(), Node::sendSelf(), NodalLoad::sendSelf(), NLBeamColumn3d::sendSelf(), NLBeamColumn2d::sendSelf(), NewtonRaphson::sendSelf(), NewtonLineSearch::sendSelf(), MP_Constraint::sendSelf(), ModifiedNewton::sendSelf(), LoadPattern::sendSelf(), GenericSectionNd::sendSelf(), GenericSection1d::sendSelf(), FourNodeQuad::sendSelf(), FiberSection3d::sendSelf(), FiberSection2d::sendSelf(), DomainDecompositionAnalysis::sendSelf(), Domain::sendSelf(), DOF_Numberer::sendSelf(), BeamWithHinges3d::sendSelf(), and BeamWithHinges2d::sendSelf().

int Channel::sendMatrix ( int dbTag,
int commitTag,
const Matrix & theMatrix,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::sendMatrix(), Actor::sendMatrix(), ZeroLengthSection::sendSelf(), ZeroLengthND::sendSelf(), ZeroLength::sendSelf(), Node::sendSelf(), and MP_Constraint::sendSelf().

int Channel::sendMsg ( int dbTag,
int commitTag,
const Message & msg,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::sendMessage(), and Actor::sendMessage().

int Channel::sendObj ( int commitTag,
MovableObject & theObject,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

methods to send/receive messages and objects on channels.

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::sendObject(), and Actor::sendObject().

int Channel::sendVector ( int dbTag,
int commitTag,
const Vector & theVector,
ChannelAddress * theAddress = 0 ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by PenaltyConstraintHandler::recvSelf(), LagrangeConstraintHandler::recvSelf(), ViscousMaterial::sendSelf(), TrussSection::sendSelf(), Truss::sendSelf(), TrigSeries::sendSelf(), Steel01::sendSelf(), SP_Constraint::sendSelf(), SectionAggregator::sendSelf(), RectangularSeries::sendSelf(), PenaltyConstraintHandler::sendSelf(), PDeltaCrdTransf3d::sendSelf(), PDeltaCrdTransf2d::sendSelf(), PathTimeSeries::sendSelf(), PathSeries::sendSelf(), ParallelMaterial::sendSelf(), Node::sendSelf(), NodalLoad::sendSelf(), NLBeamColumn3d::sendSelf(), NLBeamColumn2d::sendSelf(), NewtonLineSearch::sendSelf(), Newmark::sendSelf(), MinUnbalDispNorm::sendSelf(), LoadPattern::sendSelf(), LoadControl::sendSelf(), LinearSeries::sendSelf(), LinearCrdTransf3d::sendSelf(), LinearCrdTransf2d::sendSelf(), LagrangeConstraintHandler::sendSelf(), HHT::sendSelf(), HardeningMaterial::sendSelf(), FourNodeQuad::sendSelf(), FiberSection3d::sendSelf(), FiberSection2d::sendSelf(), ElasticSection3d::sendSelf(), ElasticSection2d::sendSelf(), ElasticPPMaterial::sendSelf(), ElasticMaterial::sendSelf(), ElasticIsotropic3D::sendSelf(), ElasticBeam3d::sendSelf(), ElasticBeam2d::sendSelf(), Domain::sendSelf(), CTestNormUnbalance::sendSelf(), CTestNormDispIncr::sendSelf(), CTestEnergyIncr::sendSelf(), ConstantSeries::sendSelf(), Concrete01::sendSelf(), BeamWithHinges3d::sendSelf(), BeamWithHinges2d::sendSelf(), ArcLength::sendSelf(), Shadow::sendVector(), and Actor::sendVector().

int Channel::setNextAddress ( const ChannelAddress & otherChannelAddress ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

int Channel::setUpActor ( void ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Actor::Actor().

int Channel::setUpShadow ( void ) [pure virtual]
 

Reimplemented in FileDatastore, MPI_Channel, TCP_Socket, and UDP_Socket.

Referenced by Shadow::Shadow().


The documentation for this class was generated from the following files:
Copyright Contact Us