1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/CheckSum.h
12 #ifndef ZYPP_CHECKSUM_H
13 #define ZYPP_CHECKSUM_H
18 #include "zypp/Pathname.h"
20 ///////////////////////////////////////////////////////////////////
22 { /////////////////////////////////////////////////////////////////
29 * Creates a checksum for algorithm \param type
30 * \throws if the checksum is invalid and can't be constructed
32 CheckSum( const std::string & type, const std::string & checksum);
33 CheckSum( const std::string & type, std::istream & input_r );
37 static const std::string & md5Type();
38 static const std::string & shaType();
39 static const std::string & sha1Type();
40 static const std::string & sha256Type();
42 static CheckSum md5( const std::string & checksum )
43 { return CheckSum( md5Type(), checksum); }
44 static CheckSum sha( const std::string & checksum )
45 { return CheckSum( shaType(), checksum); }
46 static CheckSum sha1( const std::string & checksum )
47 { return CheckSum( sha1Type(), checksum); }
48 static CheckSum sha256( const std::string & checksum )
49 { return CheckSum( sha256Type(), checksum); }
51 static CheckSum md5( std::istream & input_r )
52 { return CheckSum( md5Type(), input_r ); }
53 static CheckSum sha( std::istream & input_r )
54 { return CheckSum( sha1Type(), input_r ); }
55 static CheckSum sha1( std::istream & input_r )
56 { return CheckSum( sha1Type(), input_r ); }
57 static CheckSum sha256( std::istream & input_r )
58 { return CheckSum( sha256Type(), input_r ); }
61 std::string type() const;
62 std::string checksum() const;
67 std::string _checksum;
70 /** \relates CheckSum Stream output. */
71 std::ostream & operator<<( std::ostream & str, const CheckSum & obj );
73 /** \relates CheckSum */
74 bool operator==( const CheckSum & lhs, const CheckSum & rhs );
76 /** \relates CheckSum */
77 bool operator!=( const CheckSum & lhs, const CheckSum & rhs );
80 ///////////////////////////////////////////////////////////////////
81 #endif // ZYPP_CHECKSUM_H