Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // PacketFactory.h
- class PacketFactory
- {
- public:
- // I guess this goes here, could go elsewhere though.
- enum PacketIds
- {
- PACKET_ACKNOWLEDGE = 0x00,
- MAX_PACKET
- };
- private:
- // Ensures packet ids fit in one byte.
- BOOST_STATIC_ASSERT(MAX_PACKET <= 0x100);
- public:
- struct UnknownPacketException : std::runtime_error
- {
- UnknownPacketException() : runtime_error("Unknown packet id.") {}
- };
- PacketFactory();
- Packet *createFromId(PacketIds id);
- private:
- PacketFactory(const PacketFactory&);
- PacketFactory& operator=(const PacketFactory&);
- typedef std::map<PacketIds, boost::function<Packet*()> > IdMapType;
- IdMapType idMap;
- };
- extern PacketFactory globalPacketFactory;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement