+ static simgrid::xbt::FacetLevel<simgrid::Host, Cpu> LEVEL;
+ static void init();
+ Cpu();
+
+ /**
+ * @brief Cpu constructor
+ *
+ * @param model The CpuModel associated to this Cpu
+ * @param name The name of the Cpu
+ * @param props Dictionary of properties associated to this Cpu
+ * @param constraint The lmm constraint associated to this Cpu if it is part of a LMM component
+ * @param core The number of core of this Cpu
+ * @param speedPeak The speed peak of this Cpu in flops (max speed)
+ * @param speedScale The speed scale of this Cpu in [0;1] (available amount)
+ * @param stateInitial whether it is created running or crashed
+ */
+ Cpu(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
+ lmm_constraint_t constraint, int core, double speedPeak, double speedScale,
+ e_surf_resource_state_t stateInitial);
+
+ /**
+ * @brief Cpu constructor
+ *
+ * @param model The CpuModel associated to this Cpu
+ * @param name The name of the Cpu
+ * @param props Dictionary of properties associated to this Cpu
+ * @param core The number of core of this Cpu
+ * @param speedPeak The speed peak of this Cpu in flops (max speed)
+ * @param speedScale The speed scale of this Cpu in [0;1] (available amount)
+ * @param stateInitial whether it is created running or crashed
+ */
+ Cpu(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
+ int core, double speedPeak, double speedScale,
+ e_surf_resource_state_t stateInitial);
+
+ Cpu(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
+ lmm_constraint_t constraint, int core, double speedPeak, double speedScale);
+ Cpu(simgrid::surf::Model *model, const char *name, xbt_dict_t props,
+ int core, double speedPeak, double speedScale);
+
+ ~Cpu();
+
+ /**
+ * @brief Execute some quantity of computation
+ *
+ * @param size The value of the processing amount (in flop) needed to process
+ * @return The CpuAction corresponding to the processing
+ */
+ virtual simgrid::surf::Action *execute(double size)=0;
+
+ /**
+ * @brief Make a process sleep for duration (in seconds)
+ *
+ * @param duration The number of seconds to sleep
+ * @return The CpuAction corresponding to the sleeping
+ */
+ virtual simgrid::surf::Action *sleep(double duration)=0;
+
+ /** @brief Get the amount of cores */