10 #ifndef GarminTransportLayer_H 11 #define GarminTransportLayer_H virtual void tx(Packet *aPacket, bool aSendImmediate)
Transmit a Packet.
static GarminTransportLayer * sInstance
The one and only instance of this class.
void rx(Packet *aPacket)
Packet receive callback.
bool mCommError
If true, a communication error has occurred (transmit is suspended)
PacketList mTransmitQueue
Queue of packets being transmitted; the head of the queue may have been sent but is not ACKed...
std::list< GarminPacket * > PacketList
A list of packets.
static void destroyInstance()
Delete the one and only GarminTransportLayer instance.
virtual void onTimer()
Periodic callback.
bool sendPacket()
Send a Packet.
GarminPacket * mLastNakSent
A copy of the most recently sent NAK.
virtual ~GarminTransportLayer()
GarminTransportLayer destructor.
Abstract base class for transport layer in the OSI model.
Abstract base class for a packet of data.
virtual void retry()
Tries to resend the most recently sent packet.
GarminLinkLayer * mLinkLayer
The link layer that frames are sent/received from.
Transport layer in the OSI communication model.
Abstract base class for objects that need to do something periodically.
GarminTransportLayer()
Construct a GarminTransportLayer.
Link Layer in the OSI model.
GarminPacket * mLastAckSent
A copy of the most recently sent ACK.
static GarminTransportLayer * getInstance()
Get the one and only GarminTransportLayer.