00001 #ifndef INCOMING_PACKET_HH_
00002 # define INCOMING_PACKET_HH_
00003
00004 # include "packet.hh"
00005
00006 # define PICK_DATA(RETURN_TYPE, CAST_TYPE, OFFSET)\
00007 ((RETURN_TYPE)*((CAST_TYPE *)(_data.data() + OFFSET)))
00008
00009 namespace packets
00010 {
00011 class IncomingPacket : public DataPacket
00012 {
00013 public:
00014 IncomingPacket(int size);
00015 int get_size();
00016 virtual void check_size();
00017
00018 virtual void print_tag(std::ostream &os) const = 0;
00019 virtual void print(std::ostream &os) const;
00020
00021 protected:
00022
00023 int _size;
00024 };
00025 }
00026
00027 #endif