1
0
Fork 0
forked from suyu/suyu

general: Rename GetTitleID to GetProgramID

This commit is contained in:
Morph 2021-11-03 14:15:51 -04:00
parent f178a8ef0c
commit 64275dfbf4
24 changed files with 46 additions and 43 deletions

View file

@ -349,7 +349,7 @@ struct System::Impl {
} }
Service::Glue::ApplicationLaunchProperty launch{}; Service::Glue::ApplicationLaunchProperty launch{};
launch.title_id = process.GetTitleID(); launch.title_id = process.GetProgramID();
FileSys::PatchManager pm{launch.title_id, fs_controller, *content_provider}; FileSys::PatchManager pm{launch.title_id, fs_controller, *content_provider};
launch.version = pm.GetGameVersion().value_or(0); launch.version = pm.GetGameVersion().value_or(0);

View file

@ -143,7 +143,7 @@ std::string SaveDataFactory::GetFullPath(Core::System& system, SaveDataSpaceId s
// be interpreted as the title id of the current process. // be interpreted as the title id of the current process.
if (type == SaveDataType::SaveData || type == SaveDataType::DeviceSaveData) { if (type == SaveDataType::SaveData || type == SaveDataType::DeviceSaveData) {
if (title_id == 0) { if (title_id == 0) {
title_id = system.CurrentProcess()->GetTitleID(); title_id = system.CurrentProcess()->GetProgramID();
} }
} }

View file

@ -154,8 +154,8 @@ public:
return process_id; return process_id;
} }
/// Gets the title ID corresponding to this process. /// Gets the program ID corresponding to this process.
u64 GetTitleID() const { u64 GetProgramID() const {
return program_id; return program_id;
} }

View file

@ -768,7 +768,7 @@ static ResultCode GetInfo(Core::System& system, u64* result, u64 info_id, Handle
return ResultSuccess; return ResultSuccess;
case GetInfoType::TitleId: case GetInfoType::TitleId:
*result = process->GetTitleID(); *result = process->GetProgramID();
return ResultSuccess; return ResultSuccess;
case GetInfoType::UserExceptionContextAddr: case GetInfoType::UserExceptionContextAddr:

View file

@ -761,7 +761,7 @@ ResultCode Module::Interface::InitializeApplicationInfoBase() {
// our own process // our own process
const auto& current_process = system.Kernel().CurrentProcess(); const auto& current_process = system.Kernel().CurrentProcess();
const auto launch_property = const auto launch_property =
system.GetARPManager().GetLaunchProperty(current_process->GetTitleID()); system.GetARPManager().GetLaunchProperty(current_process->GetProgramID());
if (launch_property.Failed()) { if (launch_property.Failed()) {
LOG_ERROR(Service_ACC, "Failed to get launch property"); LOG_ERROR(Service_ACC, "Failed to get launch property");
@ -805,7 +805,7 @@ void Module::Interface::IsUserAccountSwitchLocked(Kernel::HLERequestContext& ctx
bool is_locked = false; bool is_locked = false;
if (res != Loader::ResultStatus::Success) { if (res != Loader::ResultStatus::Success) {
const FileSys::PatchManager pm{system.CurrentProcess()->GetTitleID(), const FileSys::PatchManager pm{system.CurrentProcess()->GetProgramID(),
system.GetFileSystemController(), system.GetFileSystemController(),
system.GetContentProvider()}; system.GetContentProvider()};
const auto nacp_unique = pm.GetControlMetadata().first; const auto nacp_unique = pm.GetControlMetadata().first;

View file

@ -1429,7 +1429,8 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) {
u64 build_id{}; u64 build_id{};
std::memcpy(&build_id, build_id_full.data(), sizeof(u64)); std::memcpy(&build_id, build_id_full.data(), sizeof(u64));
auto data = backend->GetLaunchParameter({system.CurrentProcess()->GetTitleID(), build_id}); auto data =
backend->GetLaunchParameter({system.CurrentProcess()->GetProgramID(), build_id});
if (data.has_value()) { if (data.has_value()) {
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
@ -1481,7 +1482,7 @@ void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_AM, "called, uid={:016X}{:016X}", user_id[1], user_id[0]); LOG_DEBUG(Service_AM, "called, uid={:016X}{:016X}", user_id[1], user_id[0]);
FileSys::SaveDataAttribute attribute{}; FileSys::SaveDataAttribute attribute{};
attribute.title_id = system.CurrentProcess()->GetTitleID(); attribute.title_id = system.CurrentProcess()->GetProgramID();
attribute.user_id = user_id; attribute.user_id = user_id;
attribute.type = FileSys::SaveDataType::SaveData; attribute.type = FileSys::SaveDataType::SaveData;
const auto res = system.GetFileSystemController().CreateSaveData( const auto res = system.GetFileSystemController().CreateSaveData(
@ -1511,7 +1512,7 @@ void IApplicationFunctions::GetDisplayVersion(Kernel::HLERequestContext& ctx) {
std::array<u8, 0x10> version_string{}; std::array<u8, 0x10> version_string{};
const auto res = [this] { const auto res = [this] {
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
const FileSys::PatchManager pm{title_id, system.GetFileSystemController(), const FileSys::PatchManager pm{title_id, system.GetFileSystemController(),
system.GetContentProvider()}; system.GetContentProvider()};
@ -1548,7 +1549,7 @@ void IApplicationFunctions::GetDesiredLanguage(Kernel::HLERequestContext& ctx) {
u32 supported_languages = 0; u32 supported_languages = 0;
const auto res = [this] { const auto res = [this] {
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
const FileSys::PatchManager pm{title_id, system.GetFileSystemController(), const FileSys::PatchManager pm{title_id, system.GetFileSystemController(),
system.GetContentProvider()}; system.GetContentProvider()};
@ -1656,7 +1657,8 @@ void IApplicationFunctions::ExtendSaveData(Kernel::HLERequestContext& ctx) {
static_cast<u8>(type), user_id[1], user_id[0], new_normal_size, new_journal_size); static_cast<u8>(type), user_id[1], user_id[0], new_normal_size, new_journal_size);
system.GetFileSystemController().WriteSaveDataSize( system.GetFileSystemController().WriteSaveDataSize(
type, system.CurrentProcess()->GetTitleID(), user_id, {new_normal_size, new_journal_size}); type, system.CurrentProcess()->GetProgramID(), user_id,
{new_normal_size, new_journal_size});
IPC::ResponseBuilder rb{ctx, 4}; IPC::ResponseBuilder rb{ctx, 4};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
@ -1680,7 +1682,7 @@ void IApplicationFunctions::GetSaveDataSize(Kernel::HLERequestContext& ctx) {
user_id[0]); user_id[0]);
const auto size = system.GetFileSystemController().ReadSaveDataSize( const auto size = system.GetFileSystemController().ReadSaveDataSize(
type, system.CurrentProcess()->GetTitleID(), user_id); type, system.CurrentProcess()->GetProgramID(), user_id);
IPC::ResponseBuilder rb{ctx, 6}; IPC::ResponseBuilder rb{ctx, 6};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);

View file

@ -167,7 +167,7 @@ void Error::Execute() {
} }
const auto callback = [this] { DisplayCompleted(); }; const auto callback = [this] { DisplayCompleted(); };
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
const auto& reporter{system.GetReporter()}; const auto& reporter{system.GetReporter()};
switch (mode) { switch (mode) {

View file

@ -187,7 +187,7 @@ void PhotoViewer::Execute() {
const auto callback = [this] { ViewFinished(); }; const auto callback = [this] { ViewFinished(); };
switch (mode) { switch (mode) {
case PhotoViewerAppletMode::CurrentApp: case PhotoViewerAppletMode::CurrentApp:
frontend.ShowPhotosForApplication(system.CurrentProcess()->GetTitleID(), callback); frontend.ShowPhotosForApplication(system.CurrentProcess()->GetProgramID(), callback);
break; break;
case PhotoViewerAppletMode::AllApps: case PhotoViewerAppletMode::AllApps:
frontend.ShowAllPhotos(callback); frontend.ShowAllPhotos(callback);

View file

@ -395,7 +395,7 @@ void WebBrowser::InitializeOffline() {
switch (document_kind) { switch (document_kind) {
case DocumentKind::OfflineHtmlPage: case DocumentKind::OfflineHtmlPage:
default: default:
title_id = system.CurrentProcess()->GetTitleID(); title_id = system.CurrentProcess()->GetProgramID();
nca_type = FileSys::ContentRecordType::HtmlDocument; nca_type = FileSys::ContentRecordType::HtmlDocument;
additional_paths = "html-document"; additional_paths = "html-document";
break; break;

View file

@ -152,7 +152,7 @@ void AOC_U::CountAddOnContent(Kernel::HLERequestContext& ctx) {
IPC::ResponseBuilder rb{ctx, 3}; IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
const auto current = system.CurrentProcess()->GetTitleID(); const auto current = system.CurrentProcess()->GetProgramID();
const auto& disabled = Settings::values.disabled_addons[current]; const auto& disabled = Settings::values.disabled_addons[current];
if (std::find(disabled.begin(), disabled.end(), "DLC") != disabled.end()) { if (std::find(disabled.begin(), disabled.end(), "DLC") != disabled.end()) {
@ -179,7 +179,7 @@ void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_AOC, "called with offset={}, count={}, process_id={}", offset, count, LOG_DEBUG(Service_AOC, "called with offset={}, count={}, process_id={}", offset, count,
process_id); process_id);
const auto current = system.CurrentProcess()->GetTitleID(); const auto current = system.CurrentProcess()->GetProgramID();
std::vector<u32> out; std::vector<u32> out;
const auto& disabled = Settings::values.disabled_addons[current]; const auto& disabled = Settings::values.disabled_addons[current];
@ -225,7 +225,7 @@ void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) {
IPC::ResponseBuilder rb{ctx, 4}; IPC::ResponseBuilder rb{ctx, 4};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
const FileSys::PatchManager pm{title_id, system.GetFileSystemController(), const FileSys::PatchManager pm{title_id, system.GetFileSystemController(),
system.GetContentProvider()}; system.GetContentProvider()};

View file

@ -178,7 +178,7 @@ private:
void RequestSyncDeliveryCache(Kernel::HLERequestContext& ctx) { void RequestSyncDeliveryCache(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_BCAT, "called"); LOG_DEBUG(Service_BCAT, "called");
backend.Synchronize({system.CurrentProcess()->GetTitleID(), backend.Synchronize({system.CurrentProcess()->GetProgramID(),
GetCurrentBuildID(system.GetCurrentProcessBuildID())}, GetCurrentBuildID(system.GetCurrentProcessBuildID())},
GetProgressBackend(SyncType::Normal)); GetProgressBackend(SyncType::Normal));
@ -195,7 +195,7 @@ private:
LOG_DEBUG(Service_BCAT, "called, name={}", name); LOG_DEBUG(Service_BCAT, "called, name={}", name);
backend.SynchronizeDirectory({system.CurrentProcess()->GetTitleID(), backend.SynchronizeDirectory({system.CurrentProcess()->GetProgramID(),
GetCurrentBuildID(system.GetCurrentProcessBuildID())}, GetCurrentBuildID(system.GetCurrentProcessBuildID())},
name, GetProgressBackend(SyncType::Directory)); name, GetProgressBackend(SyncType::Directory));
@ -556,7 +556,7 @@ private:
void Module::Interface::CreateDeliveryCacheStorageService(Kernel::HLERequestContext& ctx) { void Module::Interface::CreateDeliveryCacheStorageService(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_BCAT, "called"); LOG_DEBUG(Service_BCAT, "called");
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
IPC::ResponseBuilder rb{ctx, 2, 0, 1}; IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
rb.PushIpcInterface<IDeliveryCacheStorageService>(system, fsc.GetBCATDirectory(title_id)); rb.PushIpcInterface<IDeliveryCacheStorageService>(system, fsc.GetBCATDirectory(title_id));

View file

@ -66,7 +66,7 @@ enum class FatalType : u32 {
static void GenerateErrorReport(Core::System& system, ResultCode error_code, static void GenerateErrorReport(Core::System& system, ResultCode error_code,
const FatalInfo& info) { const FatalInfo& info) {
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
std::string crash_report = fmt::format( std::string crash_report = fmt::format(
"Yuzu {}-{} crash report\n" "Yuzu {}-{} crash report\n"
"Title ID: {:016x}\n" "Title ID: {:016x}\n"

View file

@ -320,7 +320,7 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFSCurrentProcess()
return ResultUnknown; return ResultUnknown;
} }
return romfs_factory->OpenCurrentProcess(system.CurrentProcess()->GetTitleID()); return romfs_factory->OpenCurrentProcess(system.CurrentProcess()->GetProgramID());
} }
ResultVal<FileSys::VirtualFile> FileSystemController::OpenPatchedRomFS( ResultVal<FileSys::VirtualFile> FileSystemController::OpenPatchedRomFS(
@ -505,7 +505,7 @@ FileSys::SaveDataSize FileSystemController::ReadSaveDataSize(FileSys::SaveDataTy
const auto res = system.GetAppLoader().ReadControlData(nacp); const auto res = system.GetAppLoader().ReadControlData(nacp);
if (res != Loader::ResultStatus::Success) { if (res != Loader::ResultStatus::Success) {
const FileSys::PatchManager pm{system.CurrentProcess()->GetTitleID(), const FileSys::PatchManager pm{system.CurrentProcess()->GetProgramID(),
system.GetFileSystemController(), system.GetFileSystemController(),
system.GetContentProvider()}; system.GetContentProvider()};
const auto metadata = pm.GetControlMetadata(); const auto metadata = pm.GetControlMetadata();

View file

@ -1034,8 +1034,9 @@ void FSP_SRV::OpenDataStorageWithProgramIndex(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_FS, "called, program_index={}", program_index); LOG_DEBUG(Service_FS, "called, program_index={}", program_index);
auto patched_romfs = fsc.OpenPatchedRomFSWithProgramIndex( auto patched_romfs =
system.CurrentProcess()->GetTitleID(), program_index, FileSys::ContentRecordType::Program); fsc.OpenPatchedRomFSWithProgramIndex(system.CurrentProcess()->GetProgramID(), program_index,
FileSys::ContentRecordType::Program);
if (patched_romfs.Failed()) { if (patched_romfs.Failed()) {
// TODO: Find the right error code to use here // TODO: Find the right error code to use here

View file

@ -26,7 +26,7 @@ std::optional<u64> GetTitleIDForProcessID(const Core::System& system, u64 proces
return std::nullopt; return std::nullopt;
} }
return (*iter)->GetTitleID(); return (*iter)->GetProgramID();
} }
} // Anonymous namespace } // Anonymous namespace

View file

@ -247,7 +247,7 @@ public:
return; return;
} }
if (system.CurrentProcess()->GetTitleID() != header.application_id) { if (system.CurrentProcess()->GetProgramID() != header.application_id) {
LOG_ERROR(Service_LDR, LOG_ERROR(Service_LDR,
"Attempting to load NRR with title ID other than current process. (actual " "Attempting to load NRR with title ID other than current process. (actual "
"{:016X})!", "{:016X})!",

View file

@ -189,7 +189,7 @@ private:
// TODO(ogniK): Recovery flag initialization for pctl:r // TODO(ogniK): Recovery flag initialization for pctl:r
const auto tid = system.CurrentProcess()->GetTitleID(); const auto tid = system.CurrentProcess()->GetProgramID();
if (tid != 0) { if (tid != 0) {
const FileSys::PatchManager pm{tid, system.GetFileSystemController(), const FileSys::PatchManager pm{tid, system.GetFileSystemController(),
system.GetContentProvider()}; system.GetContentProvider()};

View file

@ -101,7 +101,7 @@ private:
const auto process = const auto process =
SearchProcessList(kernel.GetProcessList(), [title_id](const auto& proc) { SearchProcessList(kernel.GetProcessList(), [title_id](const auto& proc) {
return proc->GetTitleID() == title_id; return proc->GetProgramID() == title_id;
}); });
if (!process.has_value()) { if (!process.has_value()) {
@ -152,7 +152,7 @@ private:
IPC::ResponseBuilder rb{ctx, 4}; IPC::ResponseBuilder rb{ctx, 4};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
rb.Push((*process)->GetTitleID()); rb.Push((*process)->GetProgramID());
} }
const std::vector<Kernel::KProcess*>& process_list; const std::vector<Kernel::KProcess*>& process_list;

View file

@ -73,7 +73,7 @@ private:
Type, process_id, data1.size(), data2.size()); Type, process_id, data1.size(), data2.size());
const auto& reporter{system.GetReporter()}; const auto& reporter{system.GetReporter()};
reporter.SavePlayReport(Type, system.CurrentProcess()->GetTitleID(), {data1, data2}, reporter.SavePlayReport(Type, system.CurrentProcess()->GetProgramID(), {data1, data2},
process_id); process_id);
IPC::ResponseBuilder rb{ctx, 2}; IPC::ResponseBuilder rb{ctx, 2};
@ -101,7 +101,7 @@ private:
Type, user_id[1], user_id[0], process_id, data1.size(), data2.size()); Type, user_id[1], user_id[0], process_id, data1.size(), data2.size());
const auto& reporter{system.GetReporter()}; const auto& reporter{system.GetReporter()};
reporter.SavePlayReport(Type, system.CurrentProcess()->GetTitleID(), {data1, data2}, reporter.SavePlayReport(Type, system.CurrentProcess()->GetProgramID(), {data1, data2},
process_id, user_id); process_id, user_id);
IPC::ResponseBuilder rb{ctx, 2}; IPC::ResponseBuilder rb{ctx, 2};

View file

@ -192,7 +192,7 @@ void CheatEngine::Initialize() {
core_timing.ScheduleEvent(CHEAT_ENGINE_NS, event); core_timing.ScheduleEvent(CHEAT_ENGINE_NS, event);
metadata.process_id = system.CurrentProcess()->GetProcessID(); metadata.process_id = system.CurrentProcess()->GetProcessID();
metadata.title_id = system.CurrentProcess()->GetTitleID(); metadata.title_id = system.CurrentProcess()->GetProgramID();
const auto& page_table = system.CurrentProcess()->PageTable(); const auto& page_table = system.CurrentProcess()->PageTable();
metadata.heap_extents = { metadata.heap_extents = {

View file

@ -236,7 +236,7 @@ void Reporter::SaveSvcBreakReport(u32 type, bool signal_debugger, u64 info1, u64
} }
const auto timestamp = GetTimestamp(); const auto timestamp = GetTimestamp();
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
auto out = GetFullDataAuto(timestamp, title_id, system); auto out = GetFullDataAuto(timestamp, title_id, system);
auto break_out = json{ auto break_out = json{
@ -263,7 +263,7 @@ void Reporter::SaveUnimplementedFunctionReport(Kernel::HLERequestContext& ctx, u
} }
const auto timestamp = GetTimestamp(); const auto timestamp = GetTimestamp();
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
auto out = GetFullDataAuto(timestamp, title_id, system); auto out = GetFullDataAuto(timestamp, title_id, system);
auto function_out = GetHLERequestContextData(ctx, system.Memory()); auto function_out = GetHLERequestContextData(ctx, system.Memory());
@ -285,7 +285,7 @@ void Reporter::SaveUnimplementedAppletReport(
} }
const auto timestamp = GetTimestamp(); const auto timestamp = GetTimestamp();
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
auto out = GetFullDataAuto(timestamp, title_id, system); auto out = GetFullDataAuto(timestamp, title_id, system);
out["applet_common_args"] = { out["applet_common_args"] = {
@ -377,7 +377,7 @@ void Reporter::SaveUserReport() const {
} }
const auto timestamp = GetTimestamp(); const auto timestamp = GetTimestamp();
const auto title_id = system.CurrentProcess()->GetTitleID(); const auto title_id = system.CurrentProcess()->GetProgramID();
SaveToFile(GetFullDataAuto(timestamp, title_id, system), SaveToFile(GetFullDataAuto(timestamp, title_id, system),
GetPath("user_report", title_id, timestamp)); GetPath("user_report", title_id, timestamp));

View file

@ -66,7 +66,7 @@ void EmuThread::run() {
if (Settings::values.use_disk_shader_cache.GetValue()) { if (Settings::values.use_disk_shader_cache.GetValue()) {
system.Renderer().ReadRasterizer()->LoadDiskResources( system.Renderer().ReadRasterizer()->LoadDiskResources(
system.CurrentProcess()->GetTitleID(), stop_token, system.CurrentProcess()->GetProgramID(), stop_token,
[this](VideoCore::LoadCallbackStage stage, std::size_t value, std::size_t total) { [this](VideoCore::LoadCallbackStage stage, std::size_t value, std::size_t total) {
emit LoadProgress(stage, value, total); emit LoadProgress(stage, value, total);
}); });

View file

@ -2762,7 +2762,7 @@ void GMainWindow::OnConfigureTas() {
} }
void GMainWindow::OnConfigurePerGame() { void GMainWindow::OnConfigurePerGame() {
const u64 title_id = system->CurrentProcess()->GetTitleID(); const u64 title_id = system->CurrentProcess()->GetProgramID();
OpenPerGameConfiguration(title_id, game_path.toStdString()); OpenPerGameConfiguration(title_id, game_path.toStdString());
} }
@ -2861,7 +2861,7 @@ void GMainWindow::OnToggleFilterBar() {
} }
void GMainWindow::OnCaptureScreenshot() { void GMainWindow::OnCaptureScreenshot() {
const u64 title_id = system->CurrentProcess()->GetTitleID(); const u64 title_id = system->CurrentProcess()->GetProgramID();
const auto screenshot_path = const auto screenshot_path =
QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ScreenshotsDir)); QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ScreenshotsDir));
const auto date = const auto date =

View file

@ -203,7 +203,7 @@ int main(int argc, char** argv) {
if (Settings::values.use_disk_shader_cache.GetValue()) { if (Settings::values.use_disk_shader_cache.GetValue()) {
system.Renderer().ReadRasterizer()->LoadDiskResources( system.Renderer().ReadRasterizer()->LoadDiskResources(
system.CurrentProcess()->GetTitleID(), std::stop_token{}, system.CurrentProcess()->GetProgramID(), std::stop_token{},
[](VideoCore::LoadCallbackStage, size_t value, size_t total) {}); [](VideoCore::LoadCallbackStage, size_t value, size_t total) {});
} }