Skip to content
Snippets Groups Projects
Select Git revision
  • eeb42c0f115634047dd2af45fd36df0c6b056e68
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/201911
  • release/releaseWindowsTestOne
  • release/releaseTest
  • release/releaseWindowsTest
  • release/windowsReleaseTest
  • release/201910
  • release/qt/201910
  • release/windows-test/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • 1.0.0
  • 0.3.0
  • 0.2.1
  • 0.2.0
  • 0.1.0
26 results

foldercertificatecollection.h

Blame
  • 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)