42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
|
#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
|