libzypp  17.1.1
FileChecker.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_FILECHECKER_H
13 #define ZYPP_FILECHECKER_H
14 
15 #include <iosfwd>
16 #include <list>
18 #include "zypp/base/Exception.h"
19 #include "zypp/base/Function.h"
20 #include "zypp/PathInfo.h"
21 #include "zypp/CheckSum.h"
22 #include "zypp/KeyContext.h"
23 
25 namespace zypp
26 {
27 
28  class PublicKey;
29 
37  typedef function<void ( const Pathname &file )> FileChecker;
38 
40  {
41  public:
42  FileCheckException(const std::string &msg)
43  : Exception(msg)
44  {}
45  };
46 
48  {
49  public:
50  CheckSumCheckException(const std::string &msg)
51  : FileCheckException(msg)
52  {}
53  };
54 
56  {
57  public:
58  SignatureCheckException(const std::string &msg)
59  : FileCheckException(msg)
60  {}
61  };
62 
71  {
72  public:
85  void operator()( const Pathname &file ) const;
86  private:
88  };
89 
94  {
95  public:
97  typedef function<void ( const SignatureFileChecker & checker, const Pathname & file )> OnSigValidated;
98 
99  public:
104  SignatureFileChecker( const Pathname &signature );
105 
113 
121  void setKeyContext(const KeyContext & keycontext);
122 
124  const KeyContext & keyContext() const
125  { return _context; }
126 
131  bool fileAccepted() const
132  { return _fileAccepted; }
133 
138  bool fileValidated() const
139  { return _fileValidated; }
140 
144  void addPublicKey( const PublicKey & publickey, const KeyContext & keycontext = KeyContext());
146  void addPublicKey( const Pathname & publickey, const KeyContext & keycontext = KeyContext());
147 
160  void operator()( const Pathname &file ) const;
161 
162  protected:
167  };
168 
174  {
175  public:
176  void operator()( const Pathname &file ) const;
177  };
178 
194  {
195  public:
196  void add( const FileChecker &checker );
200  void operator()( const Pathname &file ) const;
201 
202  int checkersSize() const { return _checkers.size(); }
203  private:
204  std::list<FileChecker> _checkers;
205  };
206 
208  std::ostream & operator<<( std::ostream & str, const FileChecker & obj );
209 
211 } // namespace zypp
213 #endif // ZYPP_FILECHECKER_H
Checks for nothing Used as the default checker.
Definition: FileChecker.h:173
bool fileAccepted() const
Return whether the last file passed to operator() was accepted.
Definition: FileChecker.h:131
Checks for the validity of a signature.
Definition: FileChecker.h:93
String related utilities and Regular expression matching.
std::list< FileChecker > _checkers
Definition: FileChecker.h:204
const KeyContext & keyContext() const
Return the current context.
Definition: FileChecker.h:124
DefaultIntegral< bool, false > _fileAccepted
Definition: FileChecker.h:165
function< void(const SignatureFileChecker &checker, const Pathname &file)> OnSigValidated
Definition: FileChecker.h:97
DefaultIntegral< bool, false > _fileValidated
Definition: FileChecker.h:166
CheckSumCheckException(const std::string &msg)
Definition: FileChecker.h:50
SignatureCheckException ExceptionType
Definition: FileChecker.h:96
Checker composed of more checkers.
Definition: FileChecker.h:193
Class representing one GPG Public Key (PublicKeyData + ASCII armored in a tempfile).
Definition: PublicKey.h:282
friend std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:147
Base class for Exception.
Definition: Exception.h:145
Built in file checkers.
Definition: FileChecker.h:70
bool fileValidated() const
Return whether the last file passed to operator() was actually sucessfully verified.
Definition: FileChecker.h:138
std::string checksum(const Pathname &file, const std::string &algorithm)
Compute a files checksum.
Definition: PathInfo.cc:1004
SignatureCheckException(const std::string &msg)
Definition: FileChecker.h:58
function< void(const Pathname &file)> FileChecker
Functor signature used to check files.
Definition: FileChecker.h:28
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
CheckSumCheckException ExceptionType
Definition: FileChecker.h:73
FileCheckException(const std::string &msg)
Definition: FileChecker.h:42
const std::string & msg() const
Return the message string provided to the ctor.
Definition: Exception.h:195