Program Listing for File packet.h

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

#ifndef CREATE_PACKET_H
#define CREATE_PACKET_H

#include <mutex>

namespace create {
  class Packet {
    private:
      uint16_t data;
      uint16_t tmpData;
      mutable std::mutex dataMutex;
      mutable std::mutex tmpDataMutex;

    protected:
      // Thread safe
      void setData(const uint16_t& d);

    public:
      const uint8_t nbytes;
      const std::string info;

      Packet(const uint8_t& nbytes, const std::string& info);
      ~Packet();

      // Thread safe
      void setDataToValidate(const uint16_t& td);
      // Thread safe
      void validate();
      // Thread safe
      uint16_t getData() const;
  };

}  // namepsace create

#endif // CREATE_PACKET_H