File indexing completed on 2024-05-05 09:27:14
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 #pragma once 0010 0011 #include <QSharedPointer> 0012 0013 #include "akregator_export.h" 0014 0015 namespace Akregator 0016 { 0017 namespace Backend 0018 { 0019 class Storage; 0020 } 0021 0022 class FeedList; 0023 class FetchQueue; 0024 class FrameManager; 0025 0026 class AKREGATOR_EXPORT Kernel 0027 { 0028 public: 0029 static Kernel *self(); 0030 0031 ~Kernel(); 0032 0033 Backend::Storage *storage(); 0034 void setStorage(Backend::Storage *storage); 0035 0036 [[nodiscard]] QSharedPointer<FeedList> feedList() const; 0037 void setFeedList(const QSharedPointer<FeedList> &feedList); 0038 0039 FetchQueue *fetchQueue() const; 0040 0041 FrameManager *frameManager() const; 0042 0043 private: 0044 Kernel(); 0045 0046 static Kernel *m_self; 0047 0048 Backend::Storage *m_storage = nullptr; 0049 QSharedPointer<FeedList> m_feedList; 0050 FetchQueue *m_fetchQueue = nullptr; 0051 FrameManager *m_frameManager = nullptr; 0052 }; 0053 } // namespace Akregator