17 #ifndef HPP_CORBASERVER_PROBLEM_SOLVER_MAP_HH
18 # define HPP_CORBASERVER_PROBLEM_SOLVER_MAP_HH
20 # include <boost/thread/mutex.hpp>
25 # include "hpp/core/fwd.hh"
33 typedef std::map<std::string, core::ProblemSolverPtr_t>
ProblemMap_t;
39 const std::string& name =
"default");
43 core::ProblemSolverPtr_t operator-> ();
44 operator core::ProblemSolverPtr_t ();
46 core::ProblemSolverPtr_t selected ()
const;
47 core::ProblemSolverPtr_t get (
const std::string& name)
const;
48 void selected (
const std::string& name);
50 bool has (
const std::string& name)
const;
51 void add (
const std::string& name, core::ProblemSolverPtr_t ps);
52 void remove (
const std::string& name);
53 void replaceSelected (core::ProblemSolverPtr_t ps);
55 template <
typename ReturnType> ReturnType
keys ()
const
57 mutex_t::scoped_lock lock (*mutex_);
59 for (ProblemMap_t::const_iterator it = map_->begin ();
60 it != map_->end (); ++it)
61 l.push_back (it->first);
71 std::string selected_;