engineSafeSaveSupport.cpp 719 B

123456789101112131415161718192021222324252627282930313233
  1. #include "engineSafeSaveSupport.h"
  2. #include <globalAllocator/globalAllocator.h>
  3. namespace pika
  4. {
  5. namespace sfs
  6. {
  7. ::sfs::Errors safeLoad(::sfs::SafeSafeKeyValueData &data,
  8. const char *nameWithoutExtension, bool reportLoadingBackupAsAnError)
  9. {
  10. data = {};
  11. std::vector<char> readData;
  12. readData.reserve(4000);
  13. pika::memory::pushCustomAllocatorsToStandard();
  14. auto errCode = ::sfs::safeLoad(readData, nameWithoutExtension, reportLoadingBackupAsAnError);
  15. pika::memory::popCustomAllocatorsToStandard();
  16. if (errCode == ::sfs::noError || errCode == ::sfs::readBackup)
  17. {
  18. return data.loadFromFileData(readData.data(), readData.size());
  19. }
  20. else
  21. {
  22. return errCode;
  23. }
  24. }
  25. }
  26. }