# core/host.h
## `Host::Host`
`Host(Simulator *const sim, NodeId id) noexcept`

Binds a host to a simulator under the `NodeId` id.

## `Host::Host`
`Host(const Host &) = delete`

Binds a host to a simulator under the `NodeId` id.

## `Host::attach_nic`
`void attach_nic(NetworkNic *nic) noexcept`

Attaches a `NetworkNic` to the host.

## `Host::detach_nic`
`void detach_nic(NetworkNic *nic) noexcept`

Detaches a `NetworkNic` to the host.
## `Host::nic`
`NetworkNic *nic() const noexcept`
## `Host::operator=`
`Host &operator=(const Host &) = delete`
## `Host::recv_flow`
`virtual void recv_flow(NodeId src, FlowId flow, FlowPriority priority, Bytes flow_size) = 0`
## `Host::recv_frame`
`virtual void recv_frame(const Packet &frame) = 0`
## `Host::recv_mgmt_msg`
`virtual void recv_mgmt_msg(std::unique_ptr<struct MgmtMsg> msg) = 0`
## `Host::~Host`
`virtual ~Host() = default`
