Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members
Channel Class Reference#include <Channel.h>
Inheritance diagram for Channel::
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 ChannelAddress* | getLastSendersAddress (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 (
|
) [virtual]
|
|
Member Function Documentation
char * Channel::addToProgram (
|
void ) [pure virtual]
|
|
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]
|
|
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]
|
|
int Channel::recvMsg (
|
int dbTag,
|
|
int commitTag,
|
|
Message & msg,
|
|
ChannelAddress * theAddress = 0 ) [pure virtual]
|
|
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]
|
|
int Channel::sendMsg (
|
int dbTag,
|
|
int commitTag,
|
|
const Message & msg,
|
|
ChannelAddress * theAddress = 0 ) [pure virtual]
|
|
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]
|
|
int Channel::setUpActor (
|
void ) [pure virtual]
|
|
int Channel::setUpShadow (
|
void ) [pure virtual]
|
|
The documentation for this class was generated from the following files:
|