#ifndef RAGNAROK_SOURCE_RESOURCE_RESOURCEFAILURES_H #define RAGNAROK_SOURCE_RESOURCE_RESOURCEFAILURES_H #include #include #include class ResourceMessages { public: virtual void Message(const char* text, unsigned color) = 0; protected: ~ResourceMessages() = default; }; class ResourceFailures { public: explicit ResourceFailures(ResourceMessages& messages); ~ResourceFailures(); void Report(std::string requested, std::string resolved); private: CRITICAL_SECTION m_lock; std::set m_reported; ResourceMessages* m_messages; }; #endif