00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "xrb_resourcelibrary.hpp"
00012
00013 namespace Xrb
00014 {
00015
00016
00017
00018
00019
00020 ResourceLibrary::ResourceLibrary ()
00021 {
00022 }
00023
00024 ResourceLibrary::~ResourceLibrary ()
00025 {
00026 if (!m_instance_map.empty())
00027 {
00028 for (InstanceMap::iterator it = m_instance_map.begin(),
00029 it_end = m_instance_map.end();
00030 it != it_end;
00031 ++it)
00032 {
00033 ResourceInstanceBase *resource_instance_base = it->second;
00034 ASSERT1(resource_instance_base != NULL);
00035 fprintf(stderr, "ResourceLibrary * UNFREED RESOURCE: ");
00036 resource_instance_base->Print(stderr);
00037 }
00038 }
00039 }
00040
00041 void ResourceLibrary::UnmapKey (
00042 ResourceLibrary::ResourceInstanceKey const &key)
00043 {
00044 InstanceMap::iterator it = m_instance_map.find(key);
00045 ASSERT1(it != m_instance_map.end());
00046 ASSERT1(it->second != NULL);
00047 m_instance_map.erase(it);
00048 }
00049
00050
00051
00052
00053
00054 bool ResourceLibrary::ResourceInstanceKey::LessThan::operator () (
00055 ResourceInstanceKey const &left_operand,
00056 ResourceInstanceKey const &right_operand) const
00057 {
00058 return
00059 left_operand.m_load_parameter < right_operand.m_load_parameter
00060 ||
00061 (left_operand.m_load_parameter == right_operand.m_load_parameter &&
00062 left_operand.m_path.compare(right_operand.m_path) < 0);
00063 }
00064
00065 }