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