Blame lang/cpp/src/importresult.h

Packit d7e8d0
/*
Packit d7e8d0
  importresult.h - wraps a gpgme import result
Packit d7e8d0
  Copyright (C) 2004 Klarälvdalens Datakonsult AB
Packit d7e8d0
  2016 Bundesamt für Sicherheit in der Informationstechnik
Packit d7e8d0
  Software engineering by Intevation GmbH
Packit d7e8d0
Packit d7e8d0
  This file is part of GPGME++.
Packit d7e8d0
Packit d7e8d0
  GPGME++ is free software; you can redistribute it and/or
Packit d7e8d0
  modify it under the terms of the GNU Library General Public
Packit d7e8d0
  License as published by the Free Software Foundation; either
Packit d7e8d0
  version 2 of the License, or (at your option) any later version.
Packit d7e8d0
Packit d7e8d0
  GPGME++ is distributed in the hope that it will be useful,
Packit d7e8d0
  but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit d7e8d0
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit d7e8d0
  GNU Library General Public License for more details.
Packit d7e8d0
Packit d7e8d0
  You should have received a copy of the GNU Library General Public License
Packit d7e8d0
  along with GPGME++; see the file COPYING.LIB.  If not, write to the
Packit d7e8d0
  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Packit d7e8d0
  Boston, MA 02110-1301, USA.
Packit d7e8d0
*/
Packit d7e8d0
Packit d7e8d0
#ifndef __GPGMEPP_IMPORTRESULT_H__
Packit d7e8d0
#define __GPGMEPP_IMPORTRESULT_H__
Packit d7e8d0
Packit d7e8d0
#include "gpgmefw.h"
Packit d7e8d0
#include "result.h"
Packit d7e8d0
#include "gpgmepp_export.h"
Packit d7e8d0
Packit d7e8d0
#include <memory>
Packit d7e8d0
Packit d7e8d0
#include <vector>
Packit d7e8d0
Packit d7e8d0
namespace GpgME
Packit d7e8d0
{
Packit d7e8d0
Packit d7e8d0
class Error;
Packit d7e8d0
class Import;
Packit d7e8d0
Packit d7e8d0
class GPGMEPP_EXPORT ImportResult : public Result
Packit d7e8d0
{
Packit d7e8d0
public:
Packit d7e8d0
    ImportResult();
Packit d7e8d0
    ImportResult(gpgme_ctx_t ctx, int error);
Packit d7e8d0
    ImportResult(gpgme_ctx_t ctx, const Error &error);
Packit d7e8d0
    explicit ImportResult(const Error &error);
Packit d7e8d0
Packit d7e8d0
    const ImportResult &operator=(ImportResult other)
Packit d7e8d0
    {
Packit d7e8d0
        swap(other);
Packit d7e8d0
        return *this;
Packit d7e8d0
    }
Packit d7e8d0
Packit d7e8d0
    void swap(ImportResult &other)
Packit d7e8d0
    {
Packit d7e8d0
        Result::swap(other);
Packit d7e8d0
        using std::swap;
Packit d7e8d0
        swap(this->d, other.d);
Packit d7e8d0
    }
Packit d7e8d0
Packit d7e8d0
    bool isNull() const;
Packit d7e8d0
Packit d7e8d0
    int numConsidered() const;
Packit d7e8d0
    int numKeysWithoutUserID() const;
Packit d7e8d0
    int numImported() const;
Packit d7e8d0
    int numRSAImported() const;
Packit d7e8d0
    int numUnchanged() const;
Packit d7e8d0
Packit d7e8d0
    int newUserIDs() const;
Packit d7e8d0
    int newSubkeys() const;
Packit d7e8d0
    int newSignatures() const;
Packit d7e8d0
    int newRevocations() const;
Packit d7e8d0
Packit d7e8d0
    int numSecretKeysConsidered() const;
Packit d7e8d0
    int numSecretKeysImported() const;
Packit d7e8d0
    int numSecretKeysUnchanged() const;
Packit d7e8d0
Packit d7e8d0
    int notImported() const;
Packit Service 30b792
    int numV3KeysSkipped() const;
Packit d7e8d0
Packit d7e8d0
    Import import(unsigned int idx) const;
Packit d7e8d0
    std::vector<Import> imports() const;
Packit d7e8d0
Packit d7e8d0
    class Private;
Packit d7e8d0
private:
Packit d7e8d0
    void init(gpgme_ctx_t ctx);
Packit d7e8d0
    std::shared_ptr<Private> d;
Packit d7e8d0
};
Packit d7e8d0
Packit d7e8d0
class GPGMEPP_EXPORT Import
Packit d7e8d0
{
Packit d7e8d0
    friend class ::GpgME::ImportResult;
Packit d7e8d0
    Import(const std::shared_ptr<ImportResult::Private> &parent, unsigned int idx);
Packit d7e8d0
public:
Packit d7e8d0
    Import();
Packit d7e8d0
Packit d7e8d0
    const Import &operator=(Import other)
Packit d7e8d0
    {
Packit d7e8d0
        swap(other);
Packit d7e8d0
        return *this;
Packit d7e8d0
    }
Packit d7e8d0
Packit d7e8d0
    void swap(Import &other)
Packit d7e8d0
    {
Packit d7e8d0
        using std::swap;
Packit d7e8d0
        swap(this->d, other.d);
Packit d7e8d0
        swap(this->idx, other.idx);
Packit d7e8d0
    }
Packit d7e8d0
Packit d7e8d0
    bool isNull() const;
Packit d7e8d0
Packit d7e8d0
    const char *fingerprint() const;
Packit d7e8d0
    Error error() const;
Packit d7e8d0
Packit d7e8d0
    enum Status {
Packit d7e8d0
        Unknown = 0x0,
Packit d7e8d0
        NewKey = 0x1,
Packit d7e8d0
        NewUserIDs = 0x2,
Packit d7e8d0
        NewSignatures = 0x4,
Packit d7e8d0
        NewSubkeys = 0x8,
Packit d7e8d0
        ContainedSecretKey = 0x10
Packit d7e8d0
    };
Packit d7e8d0
    Status status() const;
Packit d7e8d0
Packit d7e8d0
private:
Packit d7e8d0
    std::shared_ptr<ImportResult::Private> d;
Packit d7e8d0
    unsigned int idx;
Packit d7e8d0
};
Packit d7e8d0
Packit Service 30b792
GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const ImportResult &irs);
Packit Service 30b792
GPGMEPP_EXPORT std::ostream &operator<<(std::ostream &os, const Import &imp);
Packit Service 30b792
Packit Service 30b792
} // namespace GpgME
Packit d7e8d0
Packit d7e8d0
GPGMEPP_MAKE_STD_SWAP_SPECIALIZATION(ImportResult)
Packit d7e8d0
GPGMEPP_MAKE_STD_SWAP_SPECIALIZATION(Import)
Packit d7e8d0
Packit d7e8d0
#endif // __GPGMEPP_IMPORTRESULT_H__