*/
class XBT_PUBLIC Host : public xbt::Extendable<Host> {
#ifndef DOXYGEN
- friend vm::VMModel; // Use the pimpl_cpu to compute the VM sharing
- friend vm::VirtualMachineImpl; // creates the the pimpl_cpu
+ friend kernel::resource::VMModel; // Use the pimpl_cpu to compute the VM sharing
+ friend kernel::resource::VirtualMachineImpl; // creates the the pimpl_cpu
friend kernel::routing::NetZoneImpl;
- friend surf::HostImpl; // call destructor from private implementation
+ friend kernel::resource::HostImpl; // call destructor from private implementation
// The private implementation, that never changes
- surf::HostImpl* const pimpl_;
+ kernel::resource::HostImpl* const pimpl_;
kernel::resource::CpuImpl* pimpl_cpu_ = nullptr;
kernel::routing::NetPoint* pimpl_netpoint_ = nullptr;
public:
- explicit Host(surf::HostImpl* pimpl) : pimpl_(pimpl) {}
+ explicit Host(kernel::resource::HostImpl* pimpl) : pimpl_(pimpl) {}
protected:
virtual ~Host(); // Call destroy() instead of manually deleting it.
public:
/** Called on each newly created host */
static xbt::signal<void(Host&)> on_creation;
- /** Called just before destructing a host */
- static xbt::signal<void(Host const&)> on_destruction;
/** Called when the machine is turned on or off (called AFTER the change) */
static xbt::signal<void(Host const&)> on_state_change;
/** Called when the speed of the machine is changed (called AFTER the change)
* (either because of a pstate switch or because of an external load event coming from the profile) */
static xbt::signal<void(Host const&)> on_speed_change;
+ /** Called just before destructing a host */
+ static xbt::signal<void(Host const&)> on_destruction;
virtual void destroy();
#ifndef DOXYGEN
void add_disk(const Disk* disk);
void remove_disk(const std::string& disk_name);
+ VirtualMachine* create_vm(const std::string& name, int core_amount);
+ VirtualMachine* create_vm(const std::string& name, int core_amount, size_t ramsize);
+
void route_to(const Host* dest, std::vector<Link*>& links, double* latency) const;
void route_to(const Host* dest, std::vector<kernel::resource::LinkImpl*>& links, double* latency) const;
#ifndef DOXYGEN
XBT_ATTRIB_DEPRECATED_v331("Please use Comm::sendto()") void sendto(Host* dest, double byte_amount);
XBT_ATTRIB_DEPRECATED_v331("Please use Comm::sendto_async()") CommPtr sendto_async(Host* dest, double byte_amount);
- XBT_ATTRIB_DEPRECATED_v330("Please use Host::sendto()") void send_to(Host* dest, double byte_amount);
#endif
NetZone* get_englobing_zone() const;
/** Block the calling actor on an execution located on the called host (with explicit priority) */
void execute(double flops, double priority) const;
- surf::HostImpl* get_impl() const { return pimpl_; }
+ kernel::resource::HostImpl* get_impl() const { return pimpl_; }
};
} // namespace s4u
} // namespace simgrid