Botan  1.11.15
Classes | Namespaces | Defines | Functions
src/lib/base/algo_registry.h File Reference
#include <botan/types.h>
#include <functional>
#include <stdexcept>
#include <mutex>
#include <vector>
#include <map>
#include <string>
#include <unordered_map>

Go to the source code of this file.

Classes

class  Botan::Algo_Registry< T >::Add
struct  Botan::Algo_Registry< T >::Algo_Info
class  Botan::Algo_Registry< T >

Namespaces

namespace  Botan

Defines

#define BOTAN_COND_REGISTER_NAMED_T_NOARGS(cond, T, type, name, provider, pref)   BOTAN_REGISTER_TYPE_COND(cond, T, type, name, make_new_T<type>, provider, pref)
#define BOTAN_REGISTER_NAMED_T(T, name, type, maker)   BOTAN_REGISTER_TYPE(T, type, name, maker, "builtin", 128)
#define BOTAN_REGISTER_NAMED_T_2LEN(T, type, name, provider, len1, len2)   BOTAN_REGISTER_TYPE(T, type, name, (make_new_T_2len<type,len1,len2>), provider, 128)
#define BOTAN_REGISTER_NAMED_T_NOARGS(T, type, name, provider)   BOTAN_REGISTER_TYPE(T, type, name, make_new_T<type>, provider, 128)
#define BOTAN_REGISTER_T(T, type, maker)   BOTAN_REGISTER_TYPE(T, type, #type, maker, "builtin", 128)
#define BOTAN_REGISTER_T_1LEN(T, type, def)   BOTAN_REGISTER_TYPE(T, type, #type, (make_new_T_1len<type,def>), "builtin", 128)
#define BOTAN_REGISTER_T_NOARGS(T, type)   BOTAN_REGISTER_TYPE(T, type, #type, make_new_T<type>, "builtin", 128)
#define BOTAN_REGISTER_TRANSFORM(name, maker)   BOTAN_REGISTER_T(Transform, name, maker)
#define BOTAN_REGISTER_TRANSFORM_NOARGS(name)   BOTAN_REGISTER_T_NOARGS(Transform, name)
#define BOTAN_REGISTER_TYPE(T, type, name, maker, provider, pref)   namespace { Algo_Registry<T>::Add g_ ## type ## _reg(name, maker, provider, pref); }
#define BOTAN_REGISTER_TYPE_COND(cond, T, type, name, maker, provider, pref)   namespace { Algo_Registry<T>::Add g_ ## type ## _reg(cond, name, maker, provider, pref); }

Functions

template<typename T >
T * Botan::make_a (const typename T::Spec &spec, const std::string provider="")
template<typename T >
T * Botan::make_new_T (const typename Algo_Registry< T >::Spec &)
template<typename T , size_t DEF_VAL>
T * Botan::make_new_T_1len (const typename Algo_Registry< T >::Spec &spec)
template<typename T >
T * Botan::make_new_T_1str (const typename Algo_Registry< T >::Spec &spec, const std::string &def)
template<typename T >
T * Botan::make_new_T_1str_req (const typename Algo_Registry< T >::Spec &spec)
template<typename T , typename X >
T * Botan::make_new_T_1X (const typename Algo_Registry< T >::Spec &spec)
template<typename T , size_t DEF1, size_t DEF2>
T * Botan::make_new_T_2len (const typename Algo_Registry< T >::Spec &spec)
template<typename T >
std::vector< std::string > Botan::providers_of (const typename T::Spec &spec)

Define Documentation

#define BOTAN_COND_REGISTER_NAMED_T_NOARGS (   cond,
  T,
  type,
  name,
  provider,
  pref 
)    BOTAN_REGISTER_TYPE_COND(cond, T, type, name, make_new_T<type>, provider, pref)

Definition at line 213 of file algo_registry.h.

#define BOTAN_REGISTER_NAMED_T (   T,
  name,
  type,
  maker 
)    BOTAN_REGISTER_TYPE(T, type, name, maker, "builtin", 128)

Definition at line 200 of file algo_registry.h.

#define BOTAN_REGISTER_NAMED_T_2LEN (   T,
  type,
  name,
  provider,
  len1,
  len2 
)    BOTAN_REGISTER_TYPE(T, type, name, (make_new_T_2len<type,len1,len2>), provider, 128)

Definition at line 216 of file algo_registry.h.

#define BOTAN_REGISTER_NAMED_T_NOARGS (   T,
  type,
  name,
  provider 
)    BOTAN_REGISTER_TYPE(T, type, name, make_new_T<type>, provider, 128)

Definition at line 211 of file algo_registry.h.

#define BOTAN_REGISTER_T (   T,
  type,
  maker 
)    BOTAN_REGISTER_TYPE(T, type, #type, maker, "builtin", 128)

Definition at line 203 of file algo_registry.h.

#define BOTAN_REGISTER_T_1LEN (   T,
  type,
  def 
)    BOTAN_REGISTER_TYPE(T, type, #type, (make_new_T_1len<type,def>), "builtin", 128)

Definition at line 208 of file algo_registry.h.

#define BOTAN_REGISTER_T_NOARGS (   T,
  type 
)    BOTAN_REGISTER_TYPE(T, type, #type, make_new_T<type>, "builtin", 128)

Definition at line 206 of file algo_registry.h.

#define BOTAN_REGISTER_TRANSFORM (   name,
  maker 
)    BOTAN_REGISTER_T(Transform, name, maker)

Definition at line 220 of file algo_registry.h.

#define BOTAN_REGISTER_TRANSFORM_NOARGS (   name)    BOTAN_REGISTER_T_NOARGS(Transform, name)

Definition at line 221 of file algo_registry.h.

#define BOTAN_REGISTER_TYPE (   T,
  type,
  name,
  maker,
  provider,
  pref 
)    namespace { Algo_Registry<T>::Add g_ ## type ## _reg(name, maker, provider, pref); }

Definition at line 194 of file algo_registry.h.

#define BOTAN_REGISTER_TYPE_COND (   cond,
  T,
  type,
  name,
  maker,
  provider,
  pref 
)    namespace { Algo_Registry<T>::Add g_ ## type ## _reg(cond, name, maker, provider, pref); }

Definition at line 197 of file algo_registry.h.