1 #ifndef MESSAGE_FOR_EXEC_HPP 2 #define MESSAGE_FOR_EXEC_HPP 4 #include "parallel.hpp" 6 #include "shared_ptr.hpp" 9 typedef STD_TR1::shared_ptr<loadable_Object> loadable_Object_ref;
12 typedef STD_TR1::shared_ptr<executable_Object> executable_Object_ref;
17 typedef STD_TR1::shared_ptr<message> ref;
19 explicit message(
const std::string& param_name,
20 loadable_Object_ref parameters,
21 loadable_Object_ref receiver);
24 void prepare_message(
size_t N,
const std::string& filen);
25 void deliver_message(MPI_Comm comm,
size_t loop_nr)
const;
26 void close_message(MPI_Comm comm){ close_message_(comm);};
31 message::ref create_param_change_message(
const std::string& param_name,
32 loadable_Object_ref parameters,
33 loadable_Object_ref r);
36 message::ref create_force_reinit_message(
const std::string& param_name,
37 loadable_Object_ref parameters,
38 loadable_Object_ref r);
41 message::ref create_executable_reinit_message(
const std::string& param_name,
42 loadable_Object_ref parameters,
43 loadable_Object_ref r);
46 message::ref create_executable_perform_message(
const std::string& param_name,
47 loadable_Object_ref parameters,
48 loadable_Object_ref r,
49 const std::vector<int>);
51 size_t priority()
const {
return priority_;};
53 bool operator<(
const message& r)
const {
54 if (priority_ == r.priority_)
55 return param_name > r.param_name;
56 return priority_ < r.priority_;};
58 const char* name()
const {
return name_();}
62 std::string param_name;
63 loadable_Object_ref receiver;
71 virtual const char* name_()
const = 0;
73 virtual size_t loops_()
const = 0;
75 virtual void prepare_message_(
size_t N,
const std::string& filen) = 0;
76 virtual void deliver_message_(MPI_Comm,
size_t loop_nr)
const = 0;
77 virtual void close_message_(MPI_Comm) = 0;
80 inline bool compare_messages_by_priority( message::ref m1, message::ref m2)
82 return !(m1->operator<(*m2));
Definition: messages.hpp:15
An abstract base class supporting xml_file_reading of input parameters.
Definition: input_file.hpp:79
Definition: executable.hpp:16