File indexing completed on 2024-04-28 05:11:01

0001 /*
0002     This file is part of Akregator.
0003 
0004     SPDX-FileCopyrightText: 2005 Frank Osterfeld <osterfeld@kde.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
0007 */
0008 
0009 #include "kernel.h"
0010 
0011 #include "feedlist.h"
0012 #include "fetchqueue.h"
0013 #include "framemanager.h"
0014 #ifdef WITH_KUSERFEEDBACK
0015 #include "userfeedback/userfeedbackmanager.h"
0016 #endif
0017 
0018 using namespace Akregator;
0019 
0020 Kernel *Kernel::m_self = nullptr;
0021 
0022 Kernel *Kernel::self()
0023 {
0024     static Kernel self;
0025     if (!m_self) {
0026         m_self = &self;
0027     }
0028     return m_self;
0029 }
0030 
0031 Kernel::Kernel()
0032 {
0033     m_fetchQueue = new FetchQueue();
0034     m_frameManager = new FrameManager();
0035     m_storage = nullptr;
0036 #ifdef WITH_KUSERFEEDBACK
0037     // Initialize
0038     (void)UserFeedBackManager::self();
0039 #endif
0040 }
0041 
0042 Kernel::~Kernel()
0043 {
0044     delete m_fetchQueue;
0045     delete m_frameManager;
0046 }
0047 
0048 Backend::Storage *Kernel::storage()
0049 {
0050     return m_storage;
0051 }
0052 
0053 void Kernel::setStorage(Backend::Storage *storage)
0054 {
0055     m_storage = storage;
0056 }
0057 
0058 QSharedPointer<FeedList> Kernel::feedList() const
0059 {
0060     return m_feedList;
0061 }
0062 
0063 void Kernel::setFeedList(const QSharedPointer<FeedList> &feedList)
0064 {
0065     m_feedList = feedList;
0066 }
0067 
0068 FetchQueue *Kernel::fetchQueue() const
0069 {
0070     return m_fetchQueue;
0071 }
0072 
0073 FrameManager *Kernel::frameManager() const
0074 {
0075     return m_frameManager;
0076 }