1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
#ifndef NLNETPACKETRECEIVERUDP_H
#define NLNETPACKETRECEIVERUDP_H
#include "ArNetPacket.h"
/**
This is the receiver for UDP packets.
**/
class ArNetPacketReceiverUdp
{
public:
AREXPORT ArNetPacketReceiverUdp();
AREXPORT ~ArNetPacketReceiverUdp();
/// Sets the socket this receiver uses
AREXPORT void setSocket(ArSocket *socket);
/// Gets the socket this receiver uses
AREXPORT ArSocket *getSocket(void);
/// Sets the callback for use when a packet is received
AREXPORT void setProcessPacketCB(ArFunctor2<ArNetPacket *,
struct sockaddr_in *> *functor);
/// Gets the callback used when a packet is received
AREXPORT ArFunctor2<ArNetPacket *, struct sockaddr_in *> *
getProcessPacketCB(void);
/// Reads in all the data available calling the processPacketCB
AREXPORT bool readData(void);
protected:
ArFunctor2<ArNetPacket *, struct sockaddr_in *> *myProcessPacketCB;
ArSocket *mySocket;
ArTime myLastPacket;
ArNetPacket myPacket;
char myBuff[ArNetPacket::MAX_LENGTH+20];
};
#endif // NLNETPACKETRECEIVERUDP_H
|