CmResourceManifest.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "CmResourceManifest.h"
  2. #include "CmResourceManifestRTTI.h"
  3. namespace CamelotFramework
  4. {
  5. void ResourceManifest::registerResource(const String& uuid, const WPath& filePath)
  6. {
  7. auto iterFind = mUUIDToFilePath.find(uuid);
  8. if(iterFind != mUUIDToFilePath.end())
  9. {
  10. if(iterFind->second != filePath)
  11. {
  12. mFilePathToUUID.erase(iterFind->second);
  13. mUUIDToFilePath[uuid] = filePath;
  14. mFilePathToUUID[filePath] = uuid;
  15. }
  16. }
  17. else
  18. {
  19. mUUIDToFilePath[uuid] = filePath;
  20. mFilePathToUUID[filePath] = uuid;
  21. }
  22. }
  23. void ResourceManifest::unregisterResource(const String& uuid)
  24. {
  25. auto iterFind = mUUIDToFilePath.find(uuid);
  26. if(iterFind != mUUIDToFilePath.end())
  27. {
  28. mFilePathToUUID.erase(iterFind->second);
  29. mUUIDToFilePath.erase(uuid);
  30. }
  31. }
  32. const WPath& ResourceManifest::uuidToFilePath(const String& uuid) const
  33. {
  34. auto iterFind = mUUIDToFilePath.find(uuid);
  35. if(iterFind != mUUIDToFilePath.end())
  36. return iterFind->second;
  37. else
  38. return PathUtil::BLANK;
  39. }
  40. const String& ResourceManifest::filePathToUUID(const WPath& filePath) const
  41. {
  42. auto iterFind = mFilePathToUUID.find(filePath);
  43. if(iterFind != mFilePathToUUID.end())
  44. return iterFind->second;
  45. else
  46. return StringUtil::BLANK;
  47. }
  48. bool ResourceManifest::uuidExists(const String& uuid) const
  49. {
  50. auto iterFind = mUUIDToFilePath.find(uuid);
  51. return iterFind != mUUIDToFilePath.end();
  52. }
  53. bool ResourceManifest::filePathExists(const WPath& filePath) const
  54. {
  55. auto iterFind = mFilePathToUUID.find(filePath);
  56. return iterFind != mFilePathToUUID.end();
  57. }
  58. RTTITypeBase* ResourceManifest::getRTTIStatic()
  59. {
  60. return ResourceManifestRTTI::instance();
  61. }
  62. RTTITypeBase* ResourceManifest::getRTTI() const
  63. {
  64. return ResourceManifest::getRTTIStatic();
  65. }
  66. }