00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00026 #ifndef HH_SENF_Packets_PacketTypes_
00027 #define HH_SENF_Packets_PacketTypes_ 1
00028
00029
00030 #include <vector>
00031 #include <boost/intrusive_ptr.hpp>
00032 #include <boost/cstdint.hpp>
00033 #include <senf/boost_intrusive/ilist.hpp>
00034 #include <senf/boost_intrusive/ilist_hook.hpp>
00035
00036
00037
00038
00039 namespace senf {
00040
00041 class PacketData;
00042 class PacketInterpreterBase;
00043
00044 namespace detail {
00045
00046 class PacketImpl;
00047
00048 namespace packet {
00049
00054 template <class T>
00055 struct smart_pointer {
00056 typedef boost::intrusive_ptr<T> ptr_t;
00057 };
00058
00059 struct interpreter_list_tag;
00060 typedef boost::intrusive::ilist_base_hook<interpreter_list_tag> interpreter_list_base;
00061 typedef interpreter_list_base::value_traits<PacketInterpreterBase> interpreter_list_type;
00062
00063 typedef boost::intrusive::ilist<interpreter_list_type,false> interpreter_list;
00064
00065 typedef boost::uint8_t byte;
00066 typedef std::vector<byte> raw_container;
00067 typedef raw_container::size_type size_type;
00068 typedef raw_container::difference_type difference_type;
00069
00070 typedef raw_container::iterator iterator;
00071 typedef raw_container::const_iterator const_iterator;
00072 typedef long refcount_t;
00073
00074 namespace test {
00075
00076 class TestDriver;
00077
00078 }}}}
00079
00080
00081 #endif
00082 #if !defined(HH_SENF_Packets_Packets__decls_) && !defined(HH_SENF_Packets_PacketTypes_i_)
00083 #define HH_SENF_Packets_PacketTypes_i_
00084
00085
00086
00087 #endif
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098