2014-10-02 23:35:07 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
|
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
|
|
* later.
|
|
|
|
* See the COPYING-README file.
|
|
|
|
*/
|
|
|
|
|
2014-10-03 18:39:09 +00:00
|
|
|
namespace OC\Diagnostics;
|
2014-10-02 23:35:07 +00:00
|
|
|
|
2014-10-03 18:39:09 +00:00
|
|
|
use OCP\Diagnostics\IQueryLogger;
|
2014-10-02 23:35:07 +00:00
|
|
|
|
|
|
|
class QueryLogger implements IQueryLogger {
|
|
|
|
/**
|
2014-10-03 18:39:09 +00:00
|
|
|
* @var \OC\Diagnostics\Query
|
2014-10-02 23:35:07 +00:00
|
|
|
*/
|
|
|
|
protected $activeQuery;
|
|
|
|
|
|
|
|
/**
|
2014-10-03 18:39:09 +00:00
|
|
|
* @var \OC\Diagnostics\Query[]
|
2014-10-02 23:35:07 +00:00
|
|
|
*/
|
|
|
|
protected $queries = array();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param string $sql
|
|
|
|
* @param array $params
|
|
|
|
* @param array $types
|
|
|
|
*/
|
|
|
|
public function startQuery($sql, array $params = null, array $types = null) {
|
|
|
|
$this->activeQuery = new Query($sql, $params, microtime(true));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function stopQuery() {
|
|
|
|
if ($this->activeQuery) {
|
|
|
|
$this->activeQuery->end(microtime(true));
|
|
|
|
$this->queries[] = $this->activeQuery;
|
|
|
|
$this->activeQuery = null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2014-10-03 18:39:09 +00:00
|
|
|
* @return \OCP\Diagnostics\IQuery[]
|
2014-10-02 23:35:07 +00:00
|
|
|
*/
|
|
|
|
public function getQueries() {
|
|
|
|
return $this->queries;
|
|
|
|
}
|
|
|
|
}
|