bis_factory: Add partial implementation of BISFactory
Creates and stores RegisteredCaches for user and system NAND, as creation of a RegisteredCache is expensive.
This commit is contained in:
parent
95bb1067c1
commit
70a510bd8f
2 changed files with 54 additions and 0 deletions
24
src/core/file_sys/bis_factory.cpp
Normal file
24
src/core/file_sys/bis_factory.cpp
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
// Copyright 2018 yuzu emulator team
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "core/file_sys/bis_factory.h"
|
||||||
|
|
||||||
|
namespace FileSys {
|
||||||
|
|
||||||
|
BISFactory::BISFactory(VirtualDir nand_root_)
|
||||||
|
: nand_root(std::move(nand_root_)),
|
||||||
|
sysnand_cache(std::make_shared<RegisteredCache>(
|
||||||
|
nand_root->GetDirectoryRelative("/system/Contents/registered"))),
|
||||||
|
usrnand_cache(std::make_shared<RegisteredCache>(
|
||||||
|
nand_root->GetDirectoryRelative("/user/Contents/registered"))) {}
|
||||||
|
|
||||||
|
std::shared_ptr<RegisteredCache> BISFactory::GetSystemNANDContents() const {
|
||||||
|
return sysnand_cache;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<RegisteredCache> BISFactory::GetUserNANDContents() const {
|
||||||
|
return usrnand_cache;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace FileSys
|
30
src/core/file_sys/bis_factory.h
Normal file
30
src/core/file_sys/bis_factory.h
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
// 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/loader/loader.h"
|
||||||
|
#include "registered_cache.h"
|
||||||
|
|
||||||
|
namespace FileSys {
|
||||||
|
|
||||||
|
/// File system interface to the Built-In Storage
|
||||||
|
/// This is currently missing accessors to BIS partitions, but seemed like a good place for the NAND
|
||||||
|
/// registered caches.
|
||||||
|
class BISFactory {
|
||||||
|
public:
|
||||||
|
explicit BISFactory(VirtualDir nand_root);
|
||||||
|
|
||||||
|
std::shared_ptr<RegisteredCache> GetSystemNANDContents() const;
|
||||||
|
std::shared_ptr<RegisteredCache> GetUserNANDContents() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
VirtualDir nand_root;
|
||||||
|
|
||||||
|
std::shared_ptr<RegisteredCache> sysnand_cache;
|
||||||
|
std::shared_ptr<RegisteredCache> usrnand_cache;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace FileSys
|
Loading…
Reference in a new issue