#include <msp/strings/format.h>
#include <msp/strings/lexicalcast.h>
#include "protocol.h"
-#include "protocol_impl.h"
using namespace std;
Protocol::~Protocol()
{
- for(map<unsigned, PacketDefBase *>::iterator i=packet_class_defs.begin(); i!=packet_class_defs.end(); ++i)
- delete i->second;
+ for(auto &kvp: packet_class_defs)
+ delete kvp.second;
+}
+
+unsigned Protocol::get_next_packet_class_id()
+{
+ static unsigned next_id = 1;
+ return next_id++;
}
void Protocol::add_packet(PacketDefBase *pdef)
uint64_t Protocol::get_hash() const
{
string description;
- for(PacketMap::const_iterator i=packet_id_defs.begin(); i!=packet_id_defs.end(); ++i)
- description += format("%d:%s\n", i->first, i->second->describe());
+ for(auto &kvp: packet_id_defs)
+ description += format("%d:%s\n", kvp.first, kvp.second->describe());
return hash<64>(description);
}
}
-unsigned Protocol::PacketDefBase::next_class_id = 1;
-
Protocol::PacketDefBase::PacketDefBase(unsigned i):
id(i)
{ }