Select Git revision
-
Sébastien Blin authored
Change-Id: I32bfdd2a618aa7ac6181da2697e241667b010aab
Sébastien Blin authoredChange-Id: I32bfdd2a618aa7ac6181da2697e241667b010aab
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
foldercertificatecollection.h 3.82 KiB
/****************************************************************************
* Copyright (C) 2015-2017 Savoir-faire Linux *
* Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2.1 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#pragma once
#include <collectioninterface.h>
#include <typedefs.h>
class FolderCertificateCollectionPrivate;
class Certificate;
template<typename T> class CollectionMediator;
/**
* This class provide a fallback storage container for certificates used
* locally by LibRingClient. If the platform have a certificate hosting facility,
* it is strongly encourages to use it rather than this.
*/
class LIB_EXPORT FolderCertificateCollection : public CollectionInterface
{
friend class BackgroundLoader;
public:
///@enum Options load and behavior parameters for a FolderCertificateCollection
enum class Options {
READ_WRITE = 0 << 0, /*!< Try to add certificates to that store (default) */
READ_ONLY = 1 << 0, /*!< Do not try to add certificate to that store */
RECURSIVE = 1 << 1, /*!< Read all sub-folders recursively */
ROOT = 1 << 2, /*!< Consider those certificates as top-level entities */
FALLBACK = 1 << 3, /*!< Consider this folder the default destination for volatile certificates */
};
explicit FolderCertificateCollection(CollectionMediator<Certificate>* mediator,
const QString& path = QString(),
const FlagPack<Options>& options = Options::READ_WRITE,
const QString& name = QString(),
FolderCertificateCollection* parent = nullptr
);
virtual ~FolderCertificateCollection();
//Re-implementation
virtual bool load () override;
virtual bool reload() override;
virtual bool clear () override;
virtual QString name () const override;
virtual QString category () const override;
virtual QVariant icon () const override;
virtual bool isEnabled() const override;
virtual QByteArray id () const override;
virtual QList<Element> listId () const override;
virtual bool listId (std::function<void(const QList<Element>)> callback) const override;
virtual FlagPack<SupportedFeatures> supportedFeatures() const override;
//Getter
QUrl path() const;
private:
FolderCertificateCollectionPrivate* d_ptr;
Q_DECLARE_PRIVATE(FolderCertificateCollection)
};
Q_DECLARE_METATYPE(FolderCertificateCollection*)
DECLARE_ENUM_FLAGS(FolderCertificateCollection::Options)