+ Resource *resource;
+ ResourceLocation location;
+ bool load_priority;
+ IO::Seekable *io;
+ Resource::AsyncLoader *loader;
+ State state;
+ unsigned last_used;
+ UInt64 data_size;
+ std::vector<ResourceWatcher *> watchers;
+
+ ManagedResource(Resource &);
+
+ void start_loading();
+ bool process(bool);
+ void finish_loading(bool);
+ void finish_loading();
+ void unload();
+
+ void add_watcher(ResourceWatcher &);
+ void remove_watcher(ResourceWatcher &);
+ };
+
+ typedef std::list<ManagedResource *> LoadQueue;
+
+ class LoadingThread: public Thread
+ {