cloudsim-plus-master/cloudsim-plus-master/cloudsim-plus/src/main/java/org/cloudbus/cloudsim/datacenters/DatacenterSimple.java
protected double updateCloudletProcessing() {
        if (!isTimeToUpdateCloudletsProcessing()){
            return Double.MAX_VALUE;
        }

        double nextSimulationTime = updateHostsProcessing();
        if (nextSimulationTime != Double.MAX_VALUE) {
            nextSimulationTime = getCloudletProcessingUpdateInterval(nextSimulationTime);
            schedule(getId(),
                nextSimulationTime,
                CloudSimTags.VM_UPDATE_CLOUDLET_PROCESSING_EVENT);
        }
        setLastProcessTime(getSimulation().clock());
        return nextSimulationTime;
    }
/**
     * Updates processing of each Host, that fires the update of VMs,
     * which in turn updates cloudlets running in this Datacenter.
     * After that, the method schedules the next processing update.
     * It is necessary because Hosts and VMs are simple objects, not
     * entities. So, they don't receive events and updating cloudlets inside
     * them must be called from the outside.
     *
     * @return the predicted completion time of the earliest finishing cloudlet
     * (which is a relative delay from the current simulation time),
     * or {@link Double#MAX_VALUE} if there is no next Cloudlet to execute
     * or it isn't time to update the cloudlets
     * @pre $none
     * @post $none
     */
Updates processing of each Host, that fires the update of VMs,
which in turn updates cloudlets running in this Datacenter.
After that, the method schedules the next processing update.
It is necessary because Hosts and VMs are simple objects, not
entities. So, they don't receive events and updating cloudlets inside
them must be called from the outside.

@return the predicted completion time of the earliest finishing cloudlet
(which is a relative delay from the current simulation time),
or  Double#MAX_VALUE if there is no next Cloudlet to execute
or it isn't time to update the cloudlets
@pre $none
@post $none
Updates processing of each Host that fires the update of VMs which in turn updates cloudlets running in this Datacenter . After that the method schedules the next processing update . It is necessary because Hosts and VMs are simple objects not entities . So they don ' t receive events and updating cloudlets inside them must be called from the outside . @return the predicted completion time of the earliest finishing cloudlet ( which is a relative delay from the current simulation time ) or Double#MAX_VALUE if there is no next Cloudlet to execute or it isn ' t time to update the cloudlets @pre $none @post $none
protected double updateCloudletProcessing() {
        if (!isTimeToUpdateCloudletsProcessing()){
            return Double.MAX_VALUE;
        }
        double nextSimulationTime = updateHostsProcessing();
        if (nextSimulationTime != Double.MAX_VALUE) {
            nextSimulationTime = getCloudletProcessingUpdateInterval(nextSimulationTime);
            schedule(getId(),
                nextSimulationTime,
                CloudSimTags.VM_UPDATE_CLOUDLET_PROCESSING_EVENT);
        }
        setLastProcessTime(getSimulation().clock());
        return nextSimulationTime;
    }
protected double updateCloudletProcessing ( ) { if ( ! isTimeToUpdateCloudletsProcessing ( ) ) { return Double . MAX_VALUE ; } double nextSimulationTime = updateHostsProcessing ( ) ; if ( nextSimulationTime != Double . MAX_VALUE ) { nextSimulationTime = getCloudletProcessingUpdateInterval ( nextSimulationTime ) ; schedule ( getId ( ) , nextSimulationTime , CloudSimTags . VM_UPDATE_CLOUDLET_PROCESSING_EVENT ) ; } setLastProcessTime ( getSimulation ( ) . clock ( ) ) ; return nextSimulationTime ; }
Updates processing of each Host, that fires the update of VMs,
 which in turn updates cloudlets running in this Datacenter.
Updates processing of each Host that fires the update of VMs which in turn updates cloudlets running in this Datacenter .