29 #ifndef HPP_CORBASERVER_PROBLEM_SOLVER_MAP_HH
30 #define HPP_CORBASERVER_PROBLEM_SOLVER_MAP_HH
31 #include <boost/thread/mutex.hpp>
36 #include "hpp/core/fwd.hh"
39 namespace corbaServer {
42 typedef std::map<std::string, core::ProblemSolverPtr_t>
ProblemMap_t;
48 const std::string& name =
"default");
52 core::ProblemSolverPtr_t operator->();
53 operator core::ProblemSolverPtr_t();
55 core::ProblemSolverPtr_t selected()
const;
56 core::ProblemSolverPtr_t get(
const std::string& name)
const;
57 void selected(
const std::string& name);
59 bool has(
const std::string& name)
const;
60 void add(
const std::string& name, core::ProblemSolverPtr_t ps);
61 void remove(
const std::string& name);
62 void replaceSelected(core::ProblemSolverPtr_t ps);
64 template <
typename ReturnType>
66 mutex_t::scoped_lock lock(*mutex_);
68 for (ProblemMap_t::const_iterator it = map_->begin(); it != map_->end();
70 l.push_back(it->first);
77 std::string selected_;