00001
00002 #ifndef RC_RESOURCELIST_H
00003 #define RC_RESOURCELIST_H
00004
00005 #define NO_PURGE 0xFFFFFFFF
00006
00019 class ResourceList {
00020
00021 friend class SceneGraph;
00022
00023
00024
00025 protected:
00026 ResourceList();
00027
00028 ResourceList(
00029 u32 list_length
00030 );
00031
00032 ~ResourceList();
00033
00034 void empty();
00035
00036 private:
00037 void add(
00038 Resource *obj
00039 );
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 bool remove(
00052 Resource *obj
00053 );
00054
00055 void purge(
00056 u32 max_purge_level
00057 );
00058
00059 Resource *getResource(
00060 const char *id
00061 );
00062
00063 void getAllResources(
00064 Resource **res_list
00065 );
00066
00067 u32 getResourceCount() const;
00068
00069 void extend();
00070
00071 #ifdef DEBUG
00072
00073 void printContents(
00074 char *list_name
00075 );
00076
00077 #endif
00078
00079
00080
00081 private:
00082 u32 n_entries;
00083
00084
00085 u32 length;
00086 Resource **list;
00087
00088
00089 };
00090
00091 #endif
00092