LCOV - code coverage report
Current view: top level - src/utilities - BatchFeedDiscovery.h (source / functions) Coverage Total Hit
Test: coverage.info.cleaned Lines: 100.0 % 1 1
Test Date: 2026-01-27 22:31:25 Functions: 100.0 % 1 1

            Line data    Source code
       1              : #ifndef BATCHFEEDDISCOVERY_H
       2              : #define BATCHFEEDDISCOVERY_H
       3              : 
       4              : #include "../models/FeedItem.h"
       5              : #include "../models/ListModel.h"
       6              : #include "FeedDiscovery.h"
       7              : #include "../FangObject.h"
       8              : 
       9              : #include <QObject>
      10              : #include <QMap>
      11              : #include <QQueue>
      12              : 
      13              : /**
      14              :  * @brief Calls FeedDiscovery on a bunch of feeds at once in a list.
      15              :  * 
      16              :  * Each FeedItem will have IsUpdating and HasError set:
      17              :  *   IsUpdating: The feed discovery is in progress
      18              :  *   IsError: The feed discovery completed with an error
      19              :  * 
      20              :  * If both are false at the time done() is emitted, you're hella
      21              :  * ready to rock and roll!
      22              :  */
      23              : class BatchFeedDiscovery : public FangObject
      24              : {
      25              :     Q_OBJECT
      26              : public:
      27              :     explicit BatchFeedDiscovery(QObject *parent = nullptr);
      28              :     
      29              : signals:
      30              :     
      31              :     /**
      32              :      * @brief Completion signal.
      33              :      */
      34              :     void done();
      35              :     
      36              : public slots:
      37              :     
      38              :     /**
      39              :      * @brief Checks an entire feed list.
      40              :      */
      41              :     void checkFeedList(ListModel* feedList, int maxConcurrent = 3);
      42              :     
      43              :     /**
      44              :      * @return The list of feeds you asked me to check?  Here they are.
      45              :      */
      46            1 :     inline ListModel* getFeedList() { return feedList; }
      47              :     
      48              : protected slots:
      49              : 
      50              :     void onFeedDiscoveryFinished(FeedDiscovery* discovery);
      51              : 
      52              :     void runDiscovery(FeedDiscovery* discovery, FeedItem* item);
      53              : 
      54              : protected:
      55              :     /**
      56              :      * @brief Creates a FeedDiscovery instance. Virtual to allow mocking in tests.
      57              :      */
      58              :     virtual FeedDiscovery* createFeedDiscovery();
      59              : 
      60              :     ListModel* feedList;
      61              :     QQueue<FeedItem*> queue;
      62              :     QMap<FeedDiscovery*, FeedItem*> lookup;
      63              : };
      64              : 
      65              : #endif // BATCHFEEDDISCOVERY_H
        

Generated by: LCOV version 2.0-1