GCC Code Coverage Report


Directory: cvmfs/
File: cvmfs/catalog_downloader.cc
Date: 2026-11-01 02:41:19
Exec Total Coverage
Lines: 0 28 0.0%
Branches: 0 30 0.0%

Line Branch Exec Source
1 #include "catalog_downloader.h"
2
3 int kCatalogDownloadMultiplier = 32;
4
5 ✗ CatalogItem::CatalogItem(const shash::Any &hash) : hash_(hash) { }
6
7 ✗ void TaskCatalogDownload::Process(CatalogItem *input) {
8 // will PANIC if download failed
9 ✗ catalog::CatalogContext context(*input->GetHash(), PathString());
10 ✗ catalog_mgr_->LoadCatalogByHash(&context);
11 ✗ NotifyListeners(CatalogDownloadResult(context.sqlite_path(),
12 ✗ input->GetHash()->ToString()));
13 ✗ tube_counter_->PopFront(); // pop after calling callback as callback could
14 // enqueue additional items
15 }
16
17 ✗ CatalogDownloadPipeline::CatalogDownloadPipeline(
18 ✗ catalog::SimpleCatalogManager *catalog_mgr)
19 ✗ : spawned_(false), catalog_mgr_(catalog_mgr) {
20 ✗ const unsigned int nfork_base = 1;
21
22 // spawn a bit more workers as this is just download task
23 ✗ for (unsigned i = 0; i < nfork_base * kCatalogDownloadMultiplier; ++i) {
24 TaskCatalogDownload *task = new TaskCatalogDownload(
25 ✗ catalog_mgr_, &tube_input_, &tube_counter_);
26 ✗ task->RegisterListener(&CatalogDownloadPipeline::OnFileProcessed, this);
27 ✗ tasks_download_.TakeConsumer(task);
28 }
29 }
30
31 ✗ CatalogDownloadPipeline::~CatalogDownloadPipeline() {
32 ✗ if (spawned_) {
33 ✗ tasks_download_.Terminate();
34 }
35 }
36
37 ✗ void CatalogDownloadPipeline::OnFileProcessed(
38 const CatalogDownloadResult &catalog_download_result) {
39 ✗ NotifyListeners(catalog_download_result);
40 }
41
42 ✗ void CatalogDownloadPipeline::Process(const shash::Any &catalog_hash) {
43 ✗ CatalogItem *catalog_item = new CatalogItem(catalog_hash);
44 ✗ tube_counter_.EnqueueBack(catalog_item);
45 ✗ tube_input_.EnqueueBack(catalog_item);
46 }
47
48 ✗ void CatalogDownloadPipeline::Spawn() {
49 ✗ tasks_download_.Spawn();
50 ✗ spawned_ = true;
51 }
52
53 ✗ void CatalogDownloadPipeline::WaitFor() { tube_counter_.Wait(); }
54