#ifndef SIMIX_HOST_PRIVATE_HPP
#define SIMIX_HOST_PRIVATE_HPP
+#include <boost/intrusive/list.hpp>
#include <functional>
#include <map>
#include <vector>
-#include <xbt/base.h>
#include <xbt/Extendable.hpp>
+#include <xbt/base.h>
-#include "simgrid/simix.h"
#include "popping_private.hpp"
+#include "simgrid/simix.h"
+#include "ActorImpl.hpp"
#include "src/kernel/activity/ExecImpl.hpp"
/** @brief Host datatype from SIMIX POV */
namespace simgrid {
- namespace simix {
- class ProcessArg;
+namespace simix {
- class Host {
- public:
- static simgrid::xbt::Extension<simgrid::s4u::Host, Host> EXTENSION_ID;
+class Host {
+public:
+ static simgrid::xbt::Extension<simgrid::s4u::Host, Host> EXTENSION_ID;
- explicit Host();
- virtual ~Host();
+ explicit Host();
+ virtual ~Host();
- xbt_swag_t process_list;
- std::vector<ProcessArg*> auto_restart_processes;
- std::vector<ProcessArg*> boot_processes;
+ boost::intrusive::list<ActorImpl, boost::intrusive::member_hook<ActorImpl, boost::intrusive::list_member_hook<>,
+ &ActorImpl::host_process_list_hook>>
+ process_list;
+ std::vector<ProcessArg*> auto_restart_processes;
+ std::vector<ProcessArg*> boot_processes;
- void turnOn();
- };
- }
+ void turnOn();
+};
+}
}
extern "C" {
XBT_PRIVATE void SIMIX_execution_finish(simgrid::kernel::activity::ExecImplPtr exec);
-XBT_PRIVATE void SIMIX_set_category(smx_activity_t synchro, const char *category);
+XBT_PRIVATE void SIMIX_set_category(smx_activity_t synchro, const char* category);
}
XBT_PRIVATE boost::intrusive_ptr<simgrid::kernel::activity::ExecImpl>
double* bytes_amount, double rate, double timeout);
#endif
-