]> git.tdb.fi Git - libs/gl.git/blobdiff - source/resourcemanager.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / resourcemanager.h
diff --git a/source/resourcemanager.h b/source/resourcemanager.h
deleted file mode 100644 (file)
index 244c67e..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef MSP_GL_RESOURCEMANAGER_H_
-#define MSP_GL_RESOURCEMANAGER_H_
-
-#include <msp/core/inttypes.h>
-#include <msp/core/mutex.h>
-#include <msp/core/semaphore.h>
-#include <msp/core/thread.h>
-#include <msp/datafile/collection.h>
-#include "resource.h"
-
-namespace Msp {
-namespace GL {
-
-class ResourceWatcher;
-
-class ResourceManager
-{
-public:
-       enum LoadingPolicy
-       {
-               LOAD_IMMEDIATELY,
-               LOAD_ON_DEMAND,
-               LOAD_MANUALLY
-       };
-
-private:
-       struct ManagedResource
-       {
-               enum ResourceState
-               {
-                       NOT_LOADED,
-                       LOAD_QUEUED,
-                       LOADING,
-                       LOADED
-               };
-
-               Resource *resource;
-               DataFile::Collection *collection;
-               std::string name;
-               IO::Seekable *io;
-               Resource::AsyncLoader *loader;
-               ResourceState state;
-               unsigned last_used;
-               UInt64 data_size;
-               std::vector<ResourceWatcher *> watchers;
-
-               ManagedResource(Resource &);
-
-               void start_loading();
-               void finish_loading();
-               void unload();
-
-               void add_watcher(ResourceWatcher &);
-               void remove_watcher(ResourceWatcher &);
-       };
-
-       class LoadingThread: public Thread
-       {
-       public:
-               enum State
-               {
-                       IDLE,
-                       SYNC_PENDING,
-                       BUSY,
-                       LOAD_FINISHED,
-                       TERMINATING
-               };
-
-       private:
-               ResourceManager &manager;
-               Semaphore sem;
-               ManagedResource *volatile resource;
-               volatile State state;
-
-       public:
-               LoadingThread(ResourceManager &);
-
-       private:
-               virtual void main();
-
-       public:
-               void set_resource(ManagedResource *);
-               ManagedResource *get_resource() const { return resource; }
-               void sync();
-               State get_state() const { return state; }
-
-               void terminate();
-       };
-
-       typedef std::map<const Resource *, ManagedResource> ResourceMap;
-       typedef std::list<ManagedResource *> LoadQueue;
-
-       LoadingPolicy policy;
-       bool async_loads;
-       ResourceMap resources;
-       LoadQueue queue;
-       UInt64 size_limit;
-       unsigned frame;
-       unsigned min_retain_frames;
-       unsigned max_retain_frames;
-       unsigned next_unload;
-       LoadingThread thread;
-
-public:
-       ResourceManager();
-       ~ResourceManager();
-
-       void set_loading_policy(LoadingPolicy);
-       void set_async_loads(bool);
-       void set_size_limit(UInt64);
-       void set_min_retain_frames(unsigned);
-       void set_max_retain_frames(unsigned);
-
-       void add_resource(Resource &);
-       void *get_data_for_resource(const Resource &);
-       void set_resource_location(Resource &, DataFile::Collection &, const std::string &);
-       void load_resource(Resource &);
-       void resource_used(const Resource &);
-       void remove_resource(Resource &);
-
-       void watch_resource(const Resource &, ResourceWatcher &);
-       void unwatch_resource(const Resource &, ResourceWatcher &);
-
-       void tick();
-       UInt64 get_total_data_size() const;
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif