20 #ifndef PALUDIS_GUARD_PALUDIS_UTIL_DIGEST_REGISTRY_HH 21 #define PALUDIS_GUARD_PALUDIS_UTIL_DIGEST_REGISTRY_HH 1 28 #include <paludis/util/wrapped_forward_iterator-fwd.hh> 36 extern template class Pimp<DigestRegistry>;
40 public Singleton<DigestRegistry>
42 friend class Singleton<DigestRegistry>;
45 typedef std::function<std::string (std::istream &)> Function;
47 Function
get(
const std::string & algo)
const;
49 struct AlgorithmsConstIteratorTag;
52 AlgorithmsConstIterator begin_algorithms()
const PALUDIS_ATTRIBUTE((warn_unused_result));
53 AlgorithmsConstIterator end_algorithms()
const PALUDIS_ATTRIBUTE((warn_unused_result));
55 template <
typename T_>
61 get_instance()->register_function(algo, do_digest<T_>);
71 void register_function(
const std::string & algo,
const Function & func);
73 template <
typename T_>
75 do_digest(std::istream & stream)
78 return digest.hexsum();
Definition: about_metadata-fwd.hh:23
Definition: wrapped_forward_iterator-fwd.hh:26
Definition: digest_registry.hh:56
Definition: digest_registry.hh:39
#define PALUDIS_ATTRIBUTE(x)
Definition: attributes.hh:53
#define PALUDIS_VISIBLE
Definition: attributes.hh:59