示例#1
0
/*************************************************
* Load modules                                   *
*************************************************/
void Library_State::load(Modules& modules)
   {
#ifndef BOTAN_TOOLS_ONLY
   set_timer(modules.timer());
   set_transcoder(modules.transcoder());
#endif

   std::vector<Allocator*> mod_allocs = modules.allocators();
   for(u32bit j = 0; j != mod_allocs.size(); j++)
      add_allocator(mod_allocs[j]);

   set_default_allocator(modules.default_allocator());

#ifndef BOTAN_TOOLS_ONLY
   std::vector<Engine*> mod_engines = modules.engines();
   for(u32bit j = 0; j != mod_engines.size(); ++j)
      {
      Named_Mutex_Holder lock("engine");
      engines.push_back(mod_engines[j]);
      }

   std::vector<EntropySource*> sources = modules.entropy_sources();
   for(u32bit j = 0; j != sources.size(); ++j)
      add_entropy_source(sources[j]);
#endif
   }