123456789101112131415161718192021222324252627282930313233343536373839 |
- #pragma once
- #include "foundation/types.h"
- #include "nu/ByteWriter.h"
- class nstest;
- namespace APEv2
- {
- class Header
- {
- friend class ::nstest;
- public:
- Header();
- Header(const void *data);
- void SetSize(uint32_t size) { this->size = size; }
- void SetFlags(uint32_t flags) { this->flags = flags; }
- void SetItems(uint32_t items) { this->items = items; }
- bool Valid() const;
- uint32_t TagSize() const;
- bool HasHeader() const;
- bool HasFooter() const;
- bool IsFooter() const;
- bool IsHeader() const;
- int Encode(bytewriter_t byte_writer) const;
- uint32_t GetFlags() const;
- enum
- {
- SIZE=32,
- };
- private:
- uint8_t preamble[8];
- uint32_t version;
- uint32_t size;
- uint32_t items;
- uint32_t flags;
- uint64_t reserved;
- };
- }
|