*
* Weird things will happen if you turn on a host that is already on. S4U is fool-proof, not this.
*/
-void HostImpl::turn_on()
+void HostImpl::turn_on() const
{
for (auto const& arg : actors_at_boot_) {
XBT_DEBUG("Booting Actor %s(%s) right now", arg->name.c_str(), arg->host->get_cname());
res.push_back(actor.ciface());
return res;
}
-size_t HostImpl::get_actor_count()
+size_t HostImpl::get_actor_count() const
{
return actor_list_.size();
}
-std::vector<s4u::Disk*> HostImpl::get_disks()
+std::vector<s4u::Disk*> HostImpl::get_disks() const
{
std::vector<s4u::Disk*> disks;
for (auto const& d : disks_)
explicit HostImpl(s4u::Host* host);
virtual ~HostImpl();
- std::vector<s4u::Disk*> get_disks();
+ std::vector<s4u::Disk*> get_disks() const;
void set_disks(const std::vector<kernel::resource::DiskImpl*>& disks, s4u::Host* host);
void add_disk(const s4u::Disk* disk);
void remove_disk(const std::string& disk_name);
s4u::Host* get_iface() { return piface_; }
- void turn_on();
+ void turn_on() const;
void turn_off(kernel::actor::ActorImpl* issuer);
std::vector<s4u::ActorPtr> get_all_actors();
- size_t get_actor_count();
+ size_t get_actor_count() const;
void add_actor(kernel::actor::ActorImpl* actor) { actor_list_.push_back(*actor); }
void remove_actor(kernel::actor::ActorImpl* actor) { xbt::intrusive_erase(actor_list_, *actor); }
void add_actor_at_boot(kernel::actor::ProcessArg* arg) { actors_at_boot_.emplace_back(arg); }
~StorageImpl() override;
s4u::Storage* get_iface() { return &piface_; }
- const char* get_type() { return typeId_.c_str(); }
+ const char* get_type() const { return typeId_.c_str(); }
lmm::Constraint* get_read_constraint() const { return constraint_read_; }
lmm::Constraint* get_write_constraint() const { return constraint_write_; }
/** @brief Check if the Storage is used (if an action currently uses its resources) */
{
}
-int CpuCas01Action::requested_core()
+int CpuCas01Action::requested_core() const
{
return requested_core_;
}
CpuCas01Action(const CpuCas01Action&) = delete;
CpuCas01Action& operator=(const CpuCas01Action&) = delete;
~CpuCas01Action() override;
- int requested_core();
+ int requested_core() const;
private:
int requested_core_ = 1;
} // namespace kernel
} // namespace simgrid
-#endif
\ No newline at end of file
+#endif
* @param b End of interval
* @return the integrate value. -1 if an error occurs.
*/
-double CpuTiTmgr::integrate(double a, double b)
+double CpuTiTmgr::integrate(double a, double b) const
{
if ((a < 0.0) || (a > b)) {
xbt_die("Error, invalid integration interval [%.2f,%.2f]. "
* @param a Initial point
* @param b Final point
*/
-double CpuTiProfile::integrate_simple(double a, double b)
+double CpuTiProfile::integrate_simple(double a, double b) const
{
return integrate_simple_point(b) - integrate_simple_point(a);
}
* @brief Auxiliary function to compute the integral at point a.
* @param a point
*/
-double CpuTiProfile::integrate_simple_point(double a)
+double CpuTiProfile::integrate_simple_point(double a) const
{
double integral = 0;
double a_aux = a;
* @param amount Amount to be executed
* @return End time
*/
-double CpuTiTmgr::solve(double a, double amount)
+double CpuTiTmgr::solve(double a, double amount) const
{
/* Fix very small negative numbers */
if ((a < 0.0) && (a > -EPSILON)) {
* @param amount Amount of flops
* @return The date when amount is available.
*/
-double CpuTiProfile::solve_simple(double a, double amount)
+double CpuTiProfile::solve_simple(double a, double amount) const
{
double integral_a = integrate_simple_point(a);
int ind = binary_search(integral_, integral_a + amount);
* @param a Time
* @return CPU speed scale
*/
-double CpuTiTmgr::get_power_scale(double a)
+double CpuTiTmgr::get_power_scale(double a) const
{
double reduced_a = a - floor(a / last_time_) * last_time_;
int point = CpuTiProfile::binary_search(profile_->time_points_, reduced_a);
public:
explicit CpuTiProfile(const profile::Profile* profile);
- double integrate_simple(double a, double b);
- double integrate_simple_point(double a);
- double solve_simple(double a, double amount);
+ double integrate_simple(double a, double b) const;
+ double integrate_simple_point(double a) const;
+ double solve_simple(double a, double amount) const;
std::vector<double> time_points_;
std::vector<double> integral_;
CpuTiTmgr(const CpuTiTmgr&) = delete;
CpuTiTmgr& operator=(const CpuTiTmgr&) = delete;
- double integrate(double a, double b);
- double solve(double a, double amount);
- double get_power_scale(double a);
+ double integrate(double a, double b) const;
+ double solve(double a, double amount) const;
+ double get_power_scale(double a) const;
private:
Type type_ = Type::FIXED;
}
}
-void NetworkIBModel::computeIBfactors(IBNode* root)
+void NetworkIBModel::computeIBfactors(IBNode* root) const
{
double num_comm_out = root->ActiveCommsUp.size();
double max_penalty_out = 0.0;
XBT_DEBUG("Finished computing IB penalties");
}
-void NetworkIBModel::updateIBfactors_rec(IBNode* root, std::vector<bool>& updatedlist)
+void NetworkIBModel::updateIBfactors_rec(IBNode* root, std::vector<bool>& updatedlist) const
{
if (not updatedlist[root->id]) {
XBT_DEBUG("IB - Updating rec %d", root->id);
}
}
-void NetworkIBModel::updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove)
+void NetworkIBModel::updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove) const
{
if (from == to) // disregard local comms (should use loopback)
return;
double Bs;
double Be;
double ys;
- void updateIBfactors_rec(IBNode* root, std::vector<bool>& updatedlist);
- void computeIBfactors(IBNode* root);
+ void updateIBfactors_rec(IBNode* root, std::vector<bool>& updatedlist) const;
+ void computeIBfactors(IBNode* root) const;
public:
NetworkIBModel();
explicit NetworkIBModel(const char* name);
NetworkIBModel(const NetworkIBModel&) = delete;
NetworkIBModel& operator=(const NetworkIBModel&) = delete;
- void updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove);
+ void updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove) const;
std::unordered_map<std::string, IBNode> active_nodes;
std::unordered_map<NetworkAction*, std::pair<IBNode*, IBNode*>> active_comms;
}
}
-void LinkImpl::on_bandwidth_change()
+void LinkImpl::on_bandwidth_change() const
{
s4u::Link::on_bandwidth_change(this->piface_);
}
void turn_on() override;
void turn_off() override;
- void on_bandwidth_change();
+ void on_bandwidth_change() const;
virtual void
set_bandwidth_profile(kernel::profile::Profile* profile); /*< setup the profile file with bandwidth events