/usr/share/php/Horde/Kolab/Format/Decorator/Timed.php is in php-horde-kolab-format 2.0.9-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | <?php
/**
* Determines how much time is spent while loading/saving the Kolab objects.
*
* PHP version 5
*
* @category Kolab
* @package Kolab_Format
* @author Gunnar Wrobel <wrobel@pardus.de>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @link http://www.horde.org/libraries/Horde_Kolab_Format
*/
/**
* Determines how much time is spent while loading/saving the Kolab objects.
*
* Copyright 2010-2016 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you did not
* receive this file, see
* http://www.horde.org/licenses/lgpl21.
*
* @category Kolab
* @package Kolab_Format
* @author Gunnar Wrobel <wrobel@pardus.de>
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @link http://www.horde.org/libraries/Horde_Kolab_Format
*/
class Horde_Kolab_Format_Decorator_Timed
extends Horde_Kolab_Format_Decorator_Base
{
/**
* The timer used for recording the amount of time spent.
*
* @var Horde_Support_Timer
*/
private $_timer;
/**
* An optional logger.
*
* @var mixed
*/
private $_logger;
/**
* Time spent handling objects.
*
* @var float
*/
private static $_spent = 0.0;
/**
* Constructor.
*
* @param Horde_Kolab_Format $handler The handler to be decorated.
* @param Horde_Support_Timer $timer The timer.
* @param mixed $logger The optional logger. If set this
* needs to provide a debug() method.
*/
public function __construct(Horde_Kolab_Format $handler,
Horde_Support_Timer $timer,
$logger = null)
{
parent::__construct($handler);
$this->_timer = $timer;
$this->_logger = $logger;
}
/**
* Load an object based on the given XML stream.
*
* @param resource $xml The XML stream of the message.
* @param array $options Additional options when parsing the XML. This
* decorator provides no additional options.
*
* @return array The data array representing the object.
*
* @throws Horde_Kolab_Format_Exception
*/
public function load($xml, $options = array())
{
$this->_timer->push();
$result = $this->getHandler()->load($xml);
$spent = $this->_timer->pop();
if (is_object($this->_logger)) {
$this->_logger->debug(sprintf('Kolab Format data parsing complete. Time spent: %s ms', floor($spent * 1000)));
}
self::$_spent += $spent;
return $result;
}
/**
* Convert the data to a XML stream.
*
* @param array $object The data array representing the object.
* @param array $options Additional options when writing the XML. This
* decorator provides no additional options.
*
* @return resource The data as XML stream.
*
* @throws Horde_Kolab_Format_Exception
*/
public function save($object, $options = array())
{
$this->_timer->push();
$result = $this->getHandler()->save($object);
$spent = $this->_timer->pop();
if (is_object($this->_logger)) {
$this->_logger->debug(sprintf('Kolab Format data generation complete. Time spent: %s ms', floor($spent * 1000)));
}
self::$_spent += $spent;
return $result;
}
/**
* Report the time spent for loading/saving objects.
*
* @return float The amount of time.
*/
public function timeSpent()
{
return self::$_spent;
}
}
|