#ifndef MKVP_BLOCKENTRY_HPP #define MKVP_BLOCKENTRY_HPP #include "memory.hpp" namespace mkvparser { class Cluster; class Block; class BlockEntry : public mem::AllocBase { BlockEntry(const BlockEntry&); BlockEntry& operator=(const BlockEntry&); protected: BlockEntry(Cluster*, long index); public: virtual ~BlockEntry(); bool EOS() const; const Cluster* GetCluster() const; long GetIndex() const; virtual const Block* GetBlock() const = 0; enum Kind { kBlockEOS, kBlockSimple, kBlockGroup }; virtual Kind GetKind() const = 0; protected: Cluster* const m_pCluster; const long m_index; }; } // namespace mkvparser #endif // MKVP_BLOCKENTRY_HPP