libzypp  13.10.6
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>
17 #include "zypp/base/Exception.h"
18 #include "zypp/base/Function.h"
19 #include "zypp/PathInfo.h"
20 #include "zypp/CheckSum.h"
21 #include "zypp/KeyContext.h"
22 
24 namespace zypp
25 {
26 
27  class PublicKey;
28 
36  typedef function<void ( const Pathname &file )> FileChecker;
37 
39  {
40  public:
41  FileCheckException(const std::string &msg)
42  : Exception(msg)
43  {}
44  };
45 
47  {
48  //TODO
49  };
50 
52  {
53  //TODO
54  };
55 
64  {
65  public:
77  void operator()( const Pathname &file ) const;
78  private:
80  };
81 
86  {
87  public:
92  SignatureFileChecker( const Pathname &signature );
93 
101 
109  void setKeyContext(const KeyContext & keycontext);
110 
114  void addPublicKey( const PublicKey & publickey, const KeyContext & keycontext = KeyContext());
116  void addPublicKey( const Pathname & publickey, const KeyContext & keycontext = KeyContext());
117 
124  void operator()( const Pathname &file ) const;
125 
126  protected:
127  Pathname _signature;
129  };
130 
136  {
137  public:
138  void operator()( const Pathname &file ) const;
139  };
140 
156  {
157  public:
158  void add( const FileChecker &checker );
162  void operator()( const Pathname &file ) const;
163 
164  int checkersSize() const { return _checkers.size(); }
165  private:
166  std::list<FileChecker> _checkers;
167  };
168 
170  std::ostream & operator<<( std::ostream & str, const FileChecker & obj );
171 
173 } // namespace zypp
175 #endif // ZYPP_FILECHECKER_H
Checks for nothing Used as the default checker.
Definition: FileChecker.h:135
const std::string & msg() const
Return the message string provided to the ctor.
Definition: Exception.h:185
Checks for the validity of a signature.
Definition: FileChecker.h:85
SignatureFileChecker()
Default Constructor.
Definition: FileChecker.cc:104
std::list< FileChecker > _checkers
Definition: FileChecker.h:166
void operator()(const Pathname &file) const
Try to validate the file.
Definition: FileChecker.cc:120
void addPublicKey(const PublicKey &publickey, const KeyContext &keycontext=KeyContext())
add a public key to the list of known keys
Definition: FileChecker.cc:114
void operator()(const Pathname &file) const
Definition: FileChecker.cc:66
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:120
void add(const FileChecker &checker)
Definition: FileChecker.cc:89
void operator()(const Pathname &file) const
Definition: FileChecker.cc:72
Checker composed of more checkers.
Definition: FileChecker.h:155
Class representing one GPG Public Key (PublicKeyData + ASCII armored in a tempfile).
Definition: PublicKey.h:208
Base class for Exception.
Definition: Exception.h:143
Built in file checkers.
Definition: FileChecker.h:63
std::string checksum(const Pathname &file, const std::string &algorithm)
Compute a files checksum.
Definition: PathInfo.cc:980
void operator()(const Pathname &file) const
Try to validate the file.
Definition: FileChecker.cc:30
function< void(const Pathname &file)> FileChecker
Functor signature used to check files.
Definition: FileChecker.h:27
ChecksumFileChecker(const CheckSum &checksum)
Constructor.
Definition: FileChecker.cc:25
void setKeyContext(const KeyContext &keycontext)
Set context for this checker.
Definition: FileChecker.cc:108
FileCheckException(const std::string &msg)
Definition: FileChecker.h:41