39ae73b356
The data retrieved in these cases are ultimately chiefly owned by either the RegisteredCache instance itself, or the filesystem factories. Both these should live throughout the use of their contained data. If they don't, it should be considered an interface/design issue, and using shared_ptr instances here would mask that, as the data would always be prolonged after the main owner's lifetime ended. This makes the lifetime of the data explicit and makes it harder to accidentally create cyclic references. It also makes the interface slightly more flexible than the previous API, as a shared_ptr can be created from a unique_ptr, but not the other way around, so this allows for that use-case if it ever becomes necessary in some form.
30 lines
588 B
C++
30 lines
588 B
C++
// Copyright 2018 yuzu emulator team
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include "core/file_sys/vfs.h"
|
|
#include "core/hle/result.h"
|
|
|
|
namespace FileSys {
|
|
|
|
class RegisteredCache;
|
|
|
|
/// File system interface to the SDCard archive
|
|
class SDMCFactory {
|
|
public:
|
|
explicit SDMCFactory(VirtualDir dir);
|
|
~SDMCFactory();
|
|
|
|
ResultVal<VirtualDir> Open();
|
|
RegisteredCache* GetSDMCContents() const;
|
|
|
|
private:
|
|
VirtualDir dir;
|
|
|
|
std::unique_ptr<RegisteredCache> contents;
|
|
};
|
|
|
|
} // namespace FileSys
|