20#include <boost/core/demangle.hpp>
34 return p1->get_acceptor_id() <
p2->get_acceptor_id();
44std::set<ParameterAcceptor *, internal::ParameterAcceptorCompare>
77 boost::core::demangle(
typeid(*this).name()));
97 catch (const ::PathSearch::ExcFileNotFound &)
102 "parameter file, but it does not exist. " +
103 "We created it for you."));
157 instance->parse_parameters_call_back();
171 instance->declare_parameters_call_back();
178std::vector<std::string>
184 std::vector<std::string> sections =
191 sections.erase(sections.begin());
212 sections.insert(sections.begin(),
231 "A subsection name cannot contain the special character '/'"));
234 ExcMessage(
"Cannot create an empty subsection."));
245 ExcMessage(
"There is no subsection to leave here."));
256 for (
const auto &sec : sections)
258 prm.enter_subsection(sec);
269 for (
unsigned int i = 0; i < sections.size(); ++i)
271 prm.leave_subsection();
289 std::lock_guard<std::mutex> lock(
id_mutex);
virtual ~ParameterAcceptor() override
std::string get_section_name() const
static void declare_all_parameters(ParameterHandler &prm=ParameterAcceptor::prm)
unsigned int get_acceptor_id() const
const unsigned int acceptor_id
const std::string section_name
ParameterAcceptor(const std::string §ion_name="")
std::vector< std::string > subsections
static void initialize(const std::string &filename="", const std::string &output_filename="", const ParameterHandler::OutputStyle output_style_for_output_filename=ParameterHandler::Short, ParameterHandler &prm=ParameterAcceptor::prm, const ParameterHandler::OutputStyle output_style_for_filename=ParameterHandler::DefaultStyle)
static ParameterHandler prm
void leave_my_subsection(ParameterHandler &prm)
void enter_subsection(const std::string &subsection)
virtual void parse_parameters(ParameterHandler &prm)
static unsigned int get_next_free_id()
static void parse_all_parameters(ParameterHandler &prm=ParameterAcceptor::prm)
void enter_my_subsection(ParameterHandler &prm)
static std::mutex class_list_mutex
static std::set< ParameterAcceptor *, internal::ParameterAcceptorCompare > class_list
virtual void declare_parameters(ParameterHandler &prm)
std::vector< std::string > get_section_path() const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcIO()
static ::ExceptionBase & ExcMessage(std::string arg1)
#define AssertThrow(cond, exc)
std::vector< std::string > split_string_list(const std::string &s, const std::string &delimiter=",")
bool operator()(const ParameterAcceptor *p1, const ParameterAcceptor *p2) const