
// AUTO GENERATED by vnxcppcodegen

#ifndef INCLUDE_vnx_keyvalue_Storage_sync_range_HXX_
#define INCLUDE_vnx_keyvalue_Storage_sync_range_HXX_

#include <vnx/keyvalue/package.hxx>
#include <vnx/TopicPtr.hpp>
#include <vnx/Value.h>


namespace vnx {
namespace keyvalue {

class Storage_sync_range : public ::vnx::Value {
public:
	
	::vnx::TopicPtr topic;
	uint64_t begin = 0;
	uint64_t end = 0;
	
	typedef ::vnx::Value Super;
	
	static const vnx::Hash64 VNX_TYPE_HASH;
	static const vnx::Hash64 VNX_CODE_HASH;
	
	static constexpr uint64_t VNX_TYPE_ID = 0x57e04cb98c5e5698ull;
	
	vnx::Hash64 get_type_hash() const override;
	std::string get_type_name() const override;
	const vnx::TypeCode* get_type_code() const override;
	
	static std::shared_ptr<Storage_sync_range> create();
	std::shared_ptr<vnx::Value> clone() const override;
	
	void read(vnx::TypeInput& _in, const vnx::TypeCode* _type_code, const uint16_t* _code) override;
	void write(vnx::TypeOutput& _out, const vnx::TypeCode* _type_code, const uint16_t* _code) const override;
	
	void read(std::istream& _in) override;
	void write(std::ostream& _out) const override;
	
	void accept(vnx::Visitor& _visitor) const override;
	
	vnx::Object to_object() const override;
	void from_object(const vnx::Object& object) override;
	
	vnx::Variant get_field(const std::string& name) const override;
	void set_field(const std::string& name, const vnx::Variant& value) override;
	
	friend std::ostream& operator<<(std::ostream& _out, const Storage_sync_range& _value);
	friend std::istream& operator>>(std::istream& _in, Storage_sync_range& _value);
	
	static const vnx::TypeCode* static_get_type_code();
	static std::shared_ptr<vnx::TypeCode> static_create_type_code();
	
};


} // namespace vnx
} // namespace keyvalue


namespace vnx {

} // vnx

#endif // INCLUDE_vnx_keyvalue_Storage_sync_range_HXX_
