Libkleo

checksumdefinition.h
1 /* -*- mode: c++; c-basic-offset:4 -*-
2  checksumdefinition.h
3 
4  This file is part of libkleopatra, the KDE keymanagement library
5  SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB
6 
7  SPDX-License-Identifier: GPL-2.0-or-later
8 */
9 
10 #pragma once
11 
12 #include "kleo_export.h"
13 
14 #include <QString>
15 #include <QStringList>
16 
17 #include <memory>
18 #include <vector>
19 
20 class QProcess;
21 
22 namespace Kleo
23 {
24 
25 class KLEO_EXPORT ChecksumDefinition
26 {
27 protected:
28  ChecksumDefinition(const QString &id, const QString &label, const QString &outputFileName, const QStringList &extensions);
29 
30 public:
31  virtual ~ChecksumDefinition();
32 
33  enum ArgumentPassingMethod {
34  CommandLine,
35  NewlineSeparatedInputFile,
36  NullSeparatedInputFile,
37 
38  NumArgumentPassingMethods
39  };
40 
41  QString id() const
42  {
43  return m_id;
44  }
45  QString label() const
46  {
47  return m_label;
48  }
49 
50  const QStringList &patterns() const
51  {
52  return m_patterns;
53  }
54  QString outputFileName() const
55  {
56  return m_outputFileName;
57  }
58 
59  QString createCommand() const;
60  ArgumentPassingMethod createCommandArgumentPassingMethod() const
61  {
62  return m_createMethod;
63  }
64 
65  QString verifyCommand() const;
66  ArgumentPassingMethod verifyCommandArgumentPassingMethod() const
67  {
68  return m_verifyMethod;
69  }
70 
71  bool startCreateCommand(QProcess *process, const QStringList &files) const;
72  bool startVerifyCommand(QProcess *process, const QStringList &files) const;
73 
74  static QString installPath();
75  static void setInstallPath(const QString &ip);
76 
77  static std::vector<std::shared_ptr<ChecksumDefinition>> getChecksumDefinitions();
78  static std::vector<std::shared_ptr<ChecksumDefinition>> getChecksumDefinitions(QStringList &errors);
79 
80  static std::shared_ptr<ChecksumDefinition> getDefaultChecksumDefinition(const std::vector<std::shared_ptr<ChecksumDefinition>> &available);
81  static void setDefaultChecksumDefinition(const std::shared_ptr<ChecksumDefinition> &checksumDefinition);
82 
83 protected:
84  void setCreateCommandArgumentPassingMethod(ArgumentPassingMethod method)
85  {
86  m_createMethod = method;
87  }
88  void setVerifyCommandArgumentPassingMethod(ArgumentPassingMethod method)
89  {
90  m_verifyMethod = method;
91  }
92 
93 private:
94  virtual QString doGetCreateCommand() const = 0;
95  virtual QString doGetVerifyCommand() const = 0;
96  virtual QStringList doGetCreateArguments(const QStringList &files) const = 0;
97  virtual QStringList doGetVerifyArguments(const QStringList &files) const = 0;
98 
99 private:
100  const QString m_id;
101  const QString m_label;
102  const QString m_outputFileName;
103  const QStringList m_patterns;
104  ArgumentPassingMethod m_createMethod = CommandLine;
105  ArgumentPassingMethod m_verifyMethod = CommandLine;
106 };
107 
108 }
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Thu Feb 15 2024 03:56:14 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.