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