00001 #ifndef PACKET_HH_
00002 # define PACKET_HH_
00003
00004 # include <iostream>
00005 # include <winsock2.h>
00006 # include <windows.h>
00007
00008 # include "environment_fwd.hh"
00009 # include "packet-visitor.hh"
00010
00011 namespace packets
00012 {
00013 class DataPacket
00014 {
00015 public:
00016 DataPacket();
00017
00018 std::string &get_data();
00019 void set_data(std::string str);
00020
00021 virtual void print_tag(std::ostream &os) const = 0;
00022 virtual void print_data(std::ostream &os) const;
00023 void print_raw(std::ostream &os) const;
00024
00025 virtual void print(std::ostream &os) const = 0;
00026 virtual void process(packets::PacketVisitor &ph) = 0;
00027
00028 protected:
00029 std::string _data;
00030 };
00031
00032 std::ostream &operator <<(std::ostream &os, const DataPacket &dp);
00033 }
00034
00035 #endif