bcat: Add FSC accessors for BCAT data

Ports BCAT to use FSC interface
This commit is contained in:
Zach Hilman
2019-10-01 09:13:09 -04:00
parent bcf1eafb8b
commit 19c466dfb1
10 changed files with 51 additions and 31 deletions

View File

@ -57,11 +57,6 @@ static_assert(sizeof(DeliveryCacheProgressImpl) == 0x200,
class ProgressServiceBackend {
friend class IBcatService;
ProgressServiceBackend(std::string event_name);
Kernel::SharedPtr<Kernel::ReadableEvent> GetEvent();
DeliveryCacheProgressImpl& GetImpl();
public:
// Clients should call this with true if any of the functions are going to be called from a
// non-HLE thread and this class need to lock the hle mutex. (default is false)
@ -90,6 +85,11 @@ public:
void FinishDownload(ResultCode result);
private:
explicit ProgressServiceBackend(std::string event_name);
Kernel::SharedPtr<Kernel::ReadableEvent> GetEvent();
DeliveryCacheProgressImpl& GetImpl();
void SignalUpdate() const;
DeliveryCacheProgressImpl impl;

View File

@ -364,17 +364,18 @@ void SynchronizeInternal(DirectoryGetter dir_getter, TitleIDVersion title,
bool Boxcat::Synchronize(TitleIDVersion title, ProgressServiceBackend& progress) {
is_syncing.exchange(true);
std::thread([this, title, &progress] { SynchronizeInternal(dir_getter, title, progress); })
.detach();
std::thread([this, title, &progress] {
SynchronizeInternal(dir_getter, title, progress);
}).detach();
return true;
}
bool Boxcat::SynchronizeDirectory(TitleIDVersion title, std::string name,
ProgressServiceBackend& progress) {
is_syncing.exchange(true);
std::thread(
[this, title, name, &progress] { SynchronizeInternal(dir_getter, title, progress, name); })
.detach();
std::thread([this, title, name, &progress] {
SynchronizeInternal(dir_getter, title, progress, name);
}).detach();
return true;
}