-/* Copyright (c) 2006-2017. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2006-2018. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#ifndef SIMGRID_S4U_HOST_HPP
#define SIMGRID_S4U_HOST_HPP
+#include <simgrid/forward.h>
+#include <simgrid/s4u/forward.hpp>
+#include <xbt/Extendable.hpp>
+#include <xbt/signal.hpp>
+#include <xbt/string.hpp>
+
#include <map>
#include <string>
#include <unordered_map>
-#include "xbt/Extendable.hpp"
-#include "xbt/signal.hpp"
-#include "xbt/string.hpp"
-#include "xbt/swag.h"
-
-#include "simgrid/forward.h"
-#include "simgrid/s4u/forward.hpp"
-
namespace simgrid {
namespace xbt {
-extern template class XBT_PUBLIC() Extendable<simgrid::s4u::Host>;
+extern template class XBT_PUBLIC Extendable<simgrid::s4u::Host>;
}
namespace s4u {
* You can retrieve a particular host using simgrid::s4u::Host::byName()
* and actors can retrieve the host on which they run using simgrid::s4u::Host::current().
*/
-XBT_PUBLIC_CLASS Host : public simgrid::xbt::Extendable<Host>
-{
+class XBT_PUBLIC Host : public simgrid::xbt::Extendable<Host> {
public:
explicit Host(const char* name);
bool currentlyDestroying_ = false;
public:
- void destroy();
+ virtual void destroy();
// No copy/move
Host(Host const&) = delete;
Host& operator=(Host const&) = delete;
/** Retrieves an host from its name, or return nullptr */
static Host* by_name_or_null(std::string name);
/** Retrieves an host from its name, or die */
+ static s4u::Host* by_name(const char* name);
+ /** Retrieves an host from its name, or die */
static s4u::Host* by_name(std::string name);
/** Retrieves the host on which the current actor is running */
static s4u::Host* current();
+ XBT_ATTRIB_DEPRECATED_v323("Please use Host::get_name()") simgrid::xbt::string const& getName() const
+ {
+ return name_;
+ }
+ XBT_ATTRIB_DEPRECATED_v323("Please use Host::get_cname()") const char* getCname() const { return name_.c_str(); }
+
/** Retrieves the name of that host as a C++ string */
- simgrid::xbt::string const& getName() const { return name_; }
+ simgrid::xbt::string const& get_name() const { return name_; }
/** Retrieves the name of that host as a C string */
- const char* getCname() const { return name_.c_str(); }
+ const char* get_cname() const { return name_.c_str(); }
void actorList(std::vector<ActorPtr> * whereto);
int getPstatesCount() const;
void setPstate(int pstate_index);
int getPstate();
- void getAttachedStorages(std::vector<const char*> * storages);
+ std::vector<const char*> get_attached_storages();
+ XBT_ATTRIB_DEPRECATED_v323("Please use Host::get_attached_storages() instead.") void getAttachedStorages(
+ std::vector<const char*>* storages);
/** Get an associative list [mount point]->[Storage] of all local mount points.
*
std::unordered_map<std::string, Storage*> const& getMountedStorages();
void routeTo(Host* dest, std::vector<Link*>& links, double* latency);
- void routeTo(Host* dest, std::vector<surf::LinkImpl*>& links, double* latency);
+ void routeTo(Host* dest, std::vector<kernel::resource::LinkImpl*>& links, double* latency);
/** Block the calling actor on an execution located on the called host
*
*/
void execute(double flops);
+ /** @brief Returns the current computation load (in flops per second) */
+ double getLoad();
+
private:
- simgrid::xbt::string name_ = "noname";
+ simgrid::xbt::string name_{"noname"};
std::unordered_map<std::string, Storage*>* mounts = nullptr; // caching
public: