8 #ifndef BOTAN_LIB_STATE_H__
9 #define BOTAN_LIB_STATE_H__
11 #include <botan/global_state.h>
12 #include <botan/allocate.h>
13 #include <botan/algo_factory.h>
14 #include <botan/rng.h>
36 void initialize(
bool thread_safe);
52 Allocator* get_allocator(
const std::string& name =
"")
const;
64 void set_default_allocator(
const std::string& name);
72 std::string
get(
const std::string& section,
73 const std::string& key)
const;
82 bool is_set(
const std::string& section,
83 const std::string& key)
const;
94 void set(
const std::string& section,
95 const std::string& key,
96 const std::string& value,
97 bool overwrite =
true);
104 void add_alias(
const std::string& key,
105 const std::string& value);
112 std::string deref_alias(
const std::string& alias)
const;
117 Mutex* get_mutex()
const;
122 void load_default_config();
129 Mutex* global_rng_lock;
133 std::map<std::string, std::string> config;
135 Mutex* allocator_lock;
136 std::string default_allocator_name;
137 std::map<std::string, Allocator*> alloc_factory;
138 mutable Allocator* cached_default_allocator;
139 std::vector<Allocator*> allocators;