json FilelistInfo::serializeState(const DirectoryListingPtr& aList) noexcept { if (aList->getDownloadState() == DirectoryListing::STATE_DOWNLOADED) { bool loading = !aList->getCurrentLocationInfo().directory || aList->getCurrentLocationInfo().directory->getLoading(); return { { "id", loading ? "loading" : "loaded" }, { "str", loading ? "Parsing data" : "Loaded" }, }; } return Serializer::serializeDownloadState(*aList.get()); }
json FilelistInfo::serializeLocation(const DirectoryListingPtr& aListing) noexcept { const auto& location = aListing->getCurrentLocationInfo(); if (!location.directory) { return nullptr; } auto ret = Serializer::serializeItem(std::make_shared<FilelistItemInfo>(location.directory), itemHandler); ret["size"] = location.totalSize; ret["complete"] = location.directory->isComplete(); return ret; }