. * * @package LibreNMS * @link http://librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace LibreNMS\Data\Measure; class MeasurementSummary { private $type; private $count = 0; private $duration = 0.0; private $checkpointCount = 0; private $checkpointDuration = 0.0; public function __construct(string $type) { $this->type = $type; } public function add(Measurement $measurement) { $this->count++; $this->duration += $measurement->getDuration(); } /** * Get the measurement summary * ['count' => #, 'duration' => s] * * @return array */ public function get() { return [ 'count' => $this->count, 'duration' => $this->duration, ]; } public function getCount() { return $this->count; } public function getType() { return $this->type; } public function getDuration() { return $this->duration; } public function checkpoint() { $this->checkpointCount = $this->count; $this->checkpointDuration = $this->duration; } public function getCountDiff() { return $this->count - $this->checkpointCount; } public function getDurationDiff() { return $this->duration - $this->checkpointDuration; } }