Program Listing for File data.h

Return to documentation for file (/tmp/ws/src/libcreate/include/create/data.h)

#ifndef CREATE_DATA_H
#define CREATE_DATA_H

#include <map>
#include <memory>
#include <vector>

#include "create/packet.h"
#include "create/types.h"

namespace create {
  class Data {
    private:
      std::map<uint8_t, std::shared_ptr<Packet> > packets;
      uint32_t totalDataBytes;
      std::vector<uint8_t> ids;

    public:
      Data(ProtocolVersion version = V_3);
      ~Data();

      bool isValidPacketID(const uint8_t id) const;
      std::shared_ptr<Packet> getPacket(const uint8_t id);
      void validateAll();
      uint32_t getTotalDataBytes() const;
      uint8_t getNumPackets() const;
      std::vector<uint8_t> getPacketIDs();
  };
}  // namespace create

#endif // CREATE_DATA_H