Go to the documentation of this file.00001 #ifndef DATA_GRAM_H
00002 #define DATA_GRAM_H
00003
00004 #include <stdio.h>
00005 #include "../libSock/Socket.h"
00006 #include <vector>
00007
00008 class RawDatagram
00009 {
00010 protected :
00011 unsigned int _blength;
00012 unsigned char * _data;
00013
00014 public :
00015 RawDatagram();
00016 RawDatagram(const RawDatagram & dgm);
00017 const RawDatagram & operator=(const RawDatagram & dgm);
00018 ~RawDatagram();
00019
00020 void reset();
00021 void resize(unsigned int len);
00022 bool read(FILE * fp);
00023 bool read(const std::vector<unsigned char> & s);
00024 bool read(const unsigned char * s, unsigned int len);
00025 bool write(FILE * fp) const;
00026 bool receive(Socket * sock,unsigned int timeout=1000,
00027 bool verbose=false);
00028 bool send(Socket * sock);
00029
00030 unsigned int blength() {return _blength;}
00031 const unsigned char * data() const {return _data;}
00032 unsigned char * data() {return _data;}
00033 };
00034
00035 #if 1
00036
00037 class Datagram : public RawDatagram
00038 {
00039 public :
00040 void setId(unsigned char i);
00041 unsigned char getId() const;
00042 unsigned short getStatus() const;
00043 void setStatus(unsigned char s1,unsigned char s2);
00044 void setStatus(unsigned short s1);
00045
00046 void setData(unsigned char c, unsigned int pos);
00047 void setData(unsigned char * bd, unsigned int nb);
00048
00049 unsigned int getBLength() const;
00050 const unsigned char * bdata() const ;
00051
00052 void print(FILE * fp = stdout) const;
00053
00054 };
00055
00056 #endif
00057
00058 #endif // DATA_GRAM_H