#ifndef XNA_CONTENT_DEFAULTREADERS_ARRAY_HPP #define XNA_CONTENT_DEFAULTREADERS_ARRAY_HPP #include "reader.hpp" #include "../default.hpp" namespace xna { template class ArrayReader : public ContentTypeReaderT> { public: void Initialize(sptr const& manager) { elementReader = manager->GetTypeReader(typeof()); } sptr> Read(ContentReader& input, std::vector& existingInstance) override { const auto length = input.ReadInt32(); std::vector objArray(length); for (size_t index = 0; index < length; ++index) objArray[index] = input.ReadObject(elementReader); return objArray; } private: sptr elementReader = nullptr; }; class BooleanReader : public ContentTypeReaderT { sptr Read(ContentReader& input, bool& existingInstance) override { auto value = input.ReadBoolean(); auto b = New(value); return b; } }; } #endif