#pragma once #include #include #include #include "CharacterSaveTask.hpp" class CharacterSaveManager { public: CharacterSaveManager(); ~CharacterSaveManager(); CharacterSaveManager( const CharacterSaveManager & ) = delete; CharacterSaveManager &operator=( const CharacterSaveManager & ) = delete; static CharacterSaveManager &Get() { static CharacterSaveManager instance; return instance; } bool BeginSaveTask( const sptr_user user, const uint32_t characterId, const CharacterSlotData &metaData, const CharacterSaveType saveType ); bool BeginSaveTask( const sptr_user m_owner, const sptr_user m_target, const uint32_t characterId, const CharacterSlotData &metaData, const CharacterSaveType saveType ); void AppendSaveData( const std::wstring &sessionId, const std::vector &data, bool endOfData ); bool CommitSaveTask( const std::wstring &sessionId ); void RemoveSaveTask( const std::wstring &sessionId ); sptr_character_save_task FindSaveTask( const std::wstring &sessionId ); public: std::unordered_map< std::wstring, sptr_character_save_task > m_tasks; };