#include <link_layer.hpp>
Inheritance diagram for LinkLayer:

Public Types | |
| 
typedef boost::shared_ptr< LinkLayer >  | LinkLayerPtr | 
| Smart pointer that clients should use.  | |
Public Member Functions | |
| LinkLayerPtr | thisLinkLayer () | 
Gives this pointer as a LinkLayer object.   | |
| SimulationEndListenerPtr | thisSimulationEndListener () | 
Gives this pointer as a SimulationEndListener object.   | |
| virtual void | simulationEndHandler () | 
| The function called when the simulation ends.  | |
| bool | recvFromLayer (CommunicationLayer::Directions direction, PacketPtr packet, t_uint sendingLayerIdx) | 
| Receives a packet from a sending layer.   | |
| bool | recvFromMacProtocol (CommunicationLayer::Directions direction, PacketPtr packet) | 
| Receives a packet from the MAC protocol associated with this layer to be sent to the default next layer.   | |
| bool | channelIsBusy () | 
| Queries the underlying physical layer to determine whether the channel is busy.   | |
| CommunicationLayer::Types | getLayerType () const | 
| Get the layer type of an object.   | |
Static Public Member Functions | |
| static LinkLayerPtr | create (NodePtr node, MacProtocolPtr macProtocol) | 
A factory method to ensure that all objects are created via new since we are using smart pointers.   | |
Protected Member Functions | |
| LinkLayer (NodePtr node, MacProtocolPtr macProtocol) | |
| A constructor.  | |
Friends | |
| class | MacProtocol | 
This class contains a MAC object and could handle functions like ARP as well.
Definition at line 24 of file link_layer.hpp.
| bool LinkLayer::channelIsBusy | ( | ) | 
Queries the underlying physical layer to determine whether the channel is busy.
Definition at line 19 of file link_layer.cpp.
References CommunicationLayer::Directions_Lower, CommunicationLayer::getDefaultLayer(), and CommunicationLayer::getLayer().
| LinkLayerPtr LinkLayer::create | ( | NodePtr | node, | |
| MacProtocolPtr | macProtocol | |||
| ) |  [inline, static] | 
        
A factory method to ensure that all objects are created via new since we are using smart pointers. 
| node | the owner of this layer. | |
| macProtocol | the media access protocol that will be used by this link layer. | 
Definition at line 123 of file link_layer.hpp.
References Simulator::addSimulationEndListener(), Simulator::instance(), and LinkLayer().
| CommunicationLayer::Types LinkLayer::getLayerType | ( | ) |  const [inline, virtual] | 
        
Get the layer type of an object.
Implements CommunicationLayer.
Definition at line 149 of file link_layer.hpp.
References CommunicationLayer::Types_Link.
| bool LinkLayer::recvFromLayer | ( | CommunicationLayer::Directions | direction, | |
| PacketPtr | packet, | |||
| t_uint | sendingLayerIdx | |||
| ) |  [virtual] | 
        
Receives a packet from a sending layer.
| direction | the direction the packet was sent. | |
| packet | a pointer to the received packet. | |
| sendingLayerIdx | the index of the layer that sent the packet. | 
Reimplemented from CommunicationLayer.
Definition at line 38 of file link_layer.cpp.
| bool LinkLayer::recvFromMacProtocol | ( | CommunicationLayer::Directions | direction, | |
| PacketPtr | packet | |||
| ) | 
Receives a packet from the MAC protocol associated with this layer to be sent to the default next layer.
| direction | the direction the packet was sent. | |
| packet | a pointer to the received packet. | 
Definition at line 30 of file link_layer.cpp.
References CommunicationLayer::sendToLayer().
| LinkLayerPtr LinkLayer::thisLinkLayer | ( | ) |  [inline] | 
        
Gives this pointer as a LinkLayer object. 
This is used to deal with shared_ptr's, this, and inheritance. 
this object. Definition at line 137 of file link_layer.hpp.
| SimulationEndListenerPtr LinkLayer::thisSimulationEndListener | ( | ) |  [inline, virtual] | 
        
Gives this pointer as a SimulationEndListener object. 
This is used to deal with shared_ptr's, this, and inheritance. 
this object. Implements CommunicationLayer.
Definition at line 143 of file link_layer.hpp.
 1.4.7