text: #pragma once
  #include <string>
  #include <fnd/ISerialisable.h>
  #include <es/ticket.h>
  
  namespace es
  {
  	class SectionHeader_V2 :
  		public fnd::ISerialisable
  	{
  	public:
  		SectionHeader_V2();
  		SectionHeader_V2(const SectionHeader_V2& other);
  
  		void operator=(const SectionHeader_V2& other);
  		bool operator==(const SectionHeader_V2& other) const;
  		bool operator!=(const SectionHeader_V2& other) const;
  
  		// export/import binary
  		void toBytes();
  		void fromBytes(const byte_t* data, size_t len);
  		const fnd::Vec<byte_t>& getBytes() const;
  
  		// variables
  		virtual void clear();
  
  		uint32_t getSectionOffset() const;
  		void setSectionOffset(uint32_t offset);
  
  		uint32_t getRecordSize() const;
  		void setRecordSize(uint32_t size);
  
  		uint32_t getSectionSize() const;
  		void getSectionSize(uint32_t size);
  
  		uint16_t getRecordNum() const;
  		void setRecordNum(uint16_t record_num);
  
  		ticket::SectionType getSectionType() const;
  		void setSectionType(ticket::SectionType type);
  
  	private:
  		const std::string kModuleName = "SECTION_HEADER_V2";
  		
  		// raw binary
  		fnd::Vec<byte_t> mRawBinary;
  
  		// variables
  		uint32_t mSectionOffset;
  		uint32_t mRecordSize;
  		uint32_t mSectionSize;
  		uint16_t mRecordNum;
  		ticket::SectionType mSectionType;
  	};
  
  }
  