#include <cgate.h>
Inheritance diagram for cGate::
Public Methods | |
void | deliver (cMessage *msg, simtime_t at) |
Constructors, destructor, assignment. | |
cGate (const cGate &gate) | |
cGate (const char *name, char tp) | |
virtual | ~cGate () |
cGate& | operator= (const cGate &gate) |
Redefined cObject member functions | |
virtual cObject* | dup () const |
virtual void | forEach (ForeachFunc f) |
virtual void | info (char *buf) |
virtual const char* | fullName () const |
virtual const char* | fullPath () const |
virtual const char* | fullPath (char *buffer, int bufsize) const |
virtual void | writeContents (ostream &os) |
Setting up the gate. | |
void | setOwnerModule (cModule *m, int gid) |
void | setIndex (int sn, int vs) |
Connecting the gate. | |
void | connectTo (cGate *g, cChannel *chan=NULL) |
void | setFrom (cGate *g) |
void | setTo (cGate *g) |
Accessing the channel object. | |
void | setChannel (cChannel *ch) |
cChannel* | channel () const |
Information about the gate. | |
char | type () const |
cModule* | ownerModule () const |
int | id () const |
bool | isVector () const |
int | index () const |
int | size () const |
Setting and getting link attributes. DEPRECATED methods. | |
void | setLink (cLinkType *l) |
void | setDelay (cPar *p) |
void | setError (cPar *p) |
void | setDataRate (cPar *p) |
cLinkType* | link () const |
cPar* | delay () const |
cPar* | error () const |
cPar* | datarate () const |
Transmission state. | |
bool | isBusy () const |
simtime_t | transmissionFinishes () const |
Gate connectivity. | |
cGate* | fromGate () const |
cGate* | toGate () const |
cGate* | sourceGate () const |
cGate* | destinationGate () const |
int | routeContains (cModule *m, int g=-1) |
bool | isConnectedOutside () const |
bool | isConnectedInside () const |
bool | isConnected () const |
bool | isRouteOK () const |
Display string. | |
void | setDisplayString (const char *dispstr, bool immediate=true) |
const char* | displayString () const |
void | setDisplayStringNotify (void(*notify_func)(cGate *,bool, void *), void *data) |
|
Copy constructor. |
|
Constructor. |
|
Destructor. |
|
Returns the channel object attached to this gate, or NULL if there's no channel. |
|
Connect the a gate to another gate, optionally using the given channel object. This methods can e.g. be used to manually create connections for dynamically created modules. The channel already belonging to the gate will either be be deleted (if chan is NULL) or replaced with the one you specify here. |
|
DEPRECATED! Use channel() and cSimpleChannel::datarate() instead. If the gate has a channel, calls datarate() on it. The channel must be of class cSimpleChannel or one subclassed from it. If the gate has no channel, the method returns NULL. |
|
DEPRECATED! Use channel() and cSimpleChannel::delay() instead. If the gate has a channel, calls delay() on it. The channel must be of class cSimpleChannel or one subclassed from it. If the gate has no channel, the method returns NULL. |
|
This function is called internally by the send() functions to deliver the message to its destination. |
|
Return the ultimate source and destination of the series of connections (the route) that contains this gate. |
|
Returns the display string for the gate, which in practice affects the apprearance of the connection for which this gate is the source. |
|
Creates and returns an exact copy of this object. See cObject for more details. Reimplemented from cObject. |
|
DEPRECATED! Use channel() and cSimpleChannel::error() instead. If the gate has a channel, calls error() on it. The channel must be of class cSimpleChannel or one subclassed from it. If the gate has no channel, the method returns NULL. |
|
Call the passed function for each contained object. See cObject for more details. Reimplemented from cObject. |
|
Returns the previous gate in the series of connections (the route) that contains this gate, or a NULL pointer if this gate is the first one in the route. (E.g. for a simple module output gate, this function will return NULL.) |
|
Returns the full name of the gate, which is name() plus the index in square brackets (e.g. "out[4]"). Redefined to add the index. Reimplemented from cObject. |
|
The original fullPath() method is redefined to hide the internal array (a cArray) used to store the gate objects. Reimplemented from cObject. |
|
Redefined. (Reason: a C++ rule that overloaded virtual methods must be redefined together.) Reimplemented from cObject. |
|
Returns gate ID, the position of the gate in the array of all gates of the module. |
|
If the gate is part of a gate vector, returns the gate's index in the vector. Otherwise, it returns 0. |
|
Produces a one-line description of object contents into the buffer passed as argument. See cObject for more details. Reimplemented from cObject. |
|
If the gate has a channel subclassed from cSimpleChannel, the methods calls isBusy() on it and returns the result. Otherwise, it returns false. |
|
Returns true if the gate fully connected. For a compound module gate this means both isConnectedInside() and isConnectedOutside() are true; for a simple module, only isConnectedOutside() is checked. |
|
Returns true if the gate (of a compound module) is connected inside (i.e. to one of its submodules). This means that for an input gate, toGate() must be non-NULL; for an output gate, fromGate() must be non-NULL. |
|
Returns true if the gate is connected outside (i.e. to one of its sibling modules or to the parent module). This means that for an input gate, fromGate() must be non-NULL; for an output gate, toGate() must be non-NULL. |
|
Returns true if the route that this gate is in is complete, that is, if it starts and arrives at a simple module. |
|
Returns true if the gate is part of a gate vector. |
|
DEPRECATED! Use cChannel and channel() instead. Returns the link type of the gate, if it has one. |
|
Assignment operator. The name member doesn't get copied; see cObject's operator=() for more details. |
|
Returns a pointer to the owner module of the gate. |
|
Determines if a given module is in the route containing this gate. |
|
Assigns the given channel to this gate. |
|
DEPRECATED! Use cSimpleChannel and setChannel() instead. Creates a channel (of class cSimpleChannel) if the gate does not have one, and calls setDataRate() on it. If the gate already has a channel, it must be of class cSimpleChannel or one subclassed from it. |
|
DEPRECATED! Use cSimpleChannel and setChannel() instead. Creates a channel (of class cSimpleChannel) if the gate does not have one, and calls setDelay() on it. If the gate already has a channel, it must be of class cSimpleChannel or one subclassed from it. |
|
Sets the display string for the gate, which in practice affects the appearance of the connection for which this gate is the source. The immediate flag selects whether the change should become effective right now or later (after finishing the current event). If several display string changes are going to be done within one event, then immediate=false is useful because it reduces the number of necessary redraws. Immediate=false also uses less stack. But its drawback is that a setDisplayString() followed by a send() would actually be displayed in reverse order (message animation first), because message animations are always performed immediately (actually within the send() call). |
|
Sets up a notification function which is called every time the display string changes. |
|
DEPRECATED! Use cSimpleChannel and setChannel() instead. Creates a channel (of class cSimpleChannel) if the gate does not have one, and calls setError() on it. If the gate already has a channel, it must be of class cSimpleChannel or one subclassed from it. |
|
DEPRECATED - use connectTo() instead! Redirect gates. This method is mostly used internally during network setup to create the connections. |
|
Specifies that the gate is at index sn in a gate array of size vs. This function should not be directly called by the user. |
|
DEPRECATED! Use cChannel/cSimpleChannel and setChannel() instead. Sets the parameters of the link to those specified by the link type. |
|
Specifies that the gate is owned by module m, and it is at index g in the gate vector. This function should not be directly called by the user. |
|
DEPRECATED - use connectTo() instead! Redirect gates. This method is mostly used internally during network setup to create the connections. |
|
If the gate is part of a gate vector, returns the size of the vector. Otherwise, it returns 1. |
|
Return the ultimate source and destination of the series of connections (the route) that contains this gate. |
|
Returns the next gate in the series of connections (the route) that contains this gate, or a NULL pointer if this gate is the last one in the route. (E.g. for a simple module input gate, this function will return NULL.) |
|
If the gate has a channel subclassed from cSimpleChannel, the methods calls transmissionFinishes() on it and returns the result. Otherwise, it returns 0.0. |
|
Returns the gate's type: 'I' for input and 'O' for output. |
|
Writes textual information about this object to the stream. See cObject for more details. Reimplemented from cObject. |