# worker/4.9.25/src/MWP/Progress/Abstract.php

ManageWP Worker, version 4.9.25. 78 lines.

- Page: https://pluginprobe.com/plugins/worker/4.9.25/code/src/MWP/Progress/Abstract.php
- Raw: https://pluginprobe.com/plugins/worker/4.9.25/raw/src/MWP/Progress/Abstract.php
- Modified: 2015-07-09T10:15:42+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/worker/4.9.25/code/src/MWP/Progress/Abstract.php#L10-L20`.

```php
<?php
/*
 * This file is part of the ManageWP Worker plugin.
 *
 * (c) ManageWP LLC <contact@managewp.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

abstract class MWP_Progress_Abstract implements MWP_Progress_CurlCallbackInterface
{
    private $threshold;

    private $lastYield;

    protected function getThreshold()
    {
        return $this->threshold;
    }

    protected function setThreshold($threshold)
    {
        $this->threshold = $threshold;
    }

    protected function yieldCallback()
    {
        if (time() - $this->lastYield >= $this->threshold) {
            $this->lastYield = time();

            return true;
        }

        return false;
    }

    protected function formatBytes($bytes)
    {
        $bytes = (int) $bytes;

        if ($bytes > 1024 * 1024 * 1024) {
            return round($bytes / 1024 / 1024 / 1024, 2).' GB';
        } elseif ($bytes > 1024 * 1024) {
            return round($bytes / 1024 / 1024, 2).' MB';
        } elseif ($bytes > 1024) {
            return round($bytes / 1024, 2).' KB';
        }

        return $bytes.' B';
    }

    protected function calculateOffset($curl)
    {
        /** @handled function */
        $info = curl_getinfo($curl);

        $url = parse_url($info['url']);

        if (!isset($url['query'])) {
            return 0;
        }

        parse_str($url['query'], $query);

        if (!isset($query['offset'])) {
            return 0;
        }

        return (int) $query['offset'];
    }

    public function getCallback()
    {
        return array($this, 'callback');
    }
}

```
