8 #include <botan/datastor.h>
9 #include <botan/exceptn.h>
10 #include <botan/parsing.h>
11 #include <botan/hex.h>
12 #include <botan/internal/stl_util.h>
19 std::pair<std::string, std::string>
21 const std::string& value)
const
23 return std::make_pair(key, value);
31 return (contents == other.contents);
39 return (contents.lower_bound(key) != contents.end());
45 std::multimap<std::string, std::string>
48 std::multimap<std::string, std::string> out;
50 std::multimap<std::string, std::string>::const_iterator i =
53 while(i != contents.end())
55 if(matcher(i->first, i->second))
57 std::pair<std::string, std::string> p(
74 typedef std::multimap<std::string, std::string>::const_iterator iter;
76 std::pair<iter, iter> range = contents.equal_range(looking_for);
78 std::vector<std::string> out;
79 for(iter i = range.first; i != range.second; ++i)
80 out.push_back(i->second);
89 std::vector<std::string> vals =
get(key);
92 throw Invalid_State(
"Data_Store::get1: Not values for " + key);
94 throw Invalid_State(
"Data_Store::get1: More than one value for " + key);
105 std::vector<std::string> vals =
get(key);
111 throw Invalid_State(
"Data_Store::get1_memvec: Multiple values for " +
123 std::vector<std::string> vals =
get(key);
127 else if(vals.size() > 1)
128 throw Invalid_State(
"Data_Store::get1_u32bit: Multiple values for " +
163 std::multimap<std::string, std::string>::const_iterator i = in.begin();
size_t hex_decode(byte output[], const char input[], size_t input_length, size_t &input_consumed, bool ignore_ws)
virtual std::pair< std::string, std::string > transform(const std::string &, const std::string &) const
std::string get1(const std::string &) const
std::multimap< std::string, std::string > search_with(const Matcher &) const
MemoryVector< byte > get1_memvec(const std::string &) const
u32bit get1_u32bit(const std::string &, u32bit=0) const
bool has_value(const std::string &) const
std::string to_string(u64bit n, size_t min_len)
bool operator==(const Data_Store &) const
void multimap_insert(std::multimap< K, V > &multimap, const K &key, const V &value)
u32bit to_u32bit(const std::string &number)
std::vector< std::string > get(const std::string &) const
void add(const std::multimap< std::string, std::string > &)
void hex_encode(char output[], const byte input[], size_t input_length, bool uppercase)