Program Listing for File Properties.hpp
↰ Return to documentation for file (include/depthai/properties/Properties.hpp)
#pragma once
#include "depthai/utility/Serialization.hpp"
namespace dai {
struct Properties {
virtual void serialize(std::vector<std::uint8_t>& data, SerializationType type) const = 0;
virtual std::unique_ptr<Properties> clone() const = 0;
virtual ~Properties();
};
template <typename Base, typename Derived>
struct PropertiesSerializable : Base {
virtual void serialize(std::vector<std::uint8_t>& data, SerializationType type = SerializationType::LIBNOP) const override {
utility::serialize(static_cast<const Derived&>(*this), data, type);
}
virtual std::unique_ptr<Properties> clone() const override {
return std::make_unique<Derived>(static_cast<const Derived&>(*this));
}
};
} // namespace dai