Program Listing for File Asset.hpp

Return to documentation for file (engine/include/Cacao/Asset.hpp)

#pragma once

#include "DllHelper.hpp"
#include "Resource.hpp"

#include <future>

namespace Cacao {
    class CACAO_API Asset : public Resource {
      public:
        virtual void Realize() = 0;

        virtual std::shared_future<void> RealizeAsync() = 0;

        virtual void DropRealized() = 0;

        virtual bool IsRealized() const {
            return realized;
        }

        virtual ~Asset() {}

      protected:
        Asset(const std::string& addr)
          : Resource(addr), realized(false) {}

        bool realized;
    };
}