Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
2.2 kB · 108 lines
PHP
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109<?php
final class PhutilKeyValueCacheProfiler extends PhutilKeyValueCacheProxy {
private $profiler; private $name;
public function setName($name) { $this->name = $name; return $this; }
public function getName() { return $this->name; }
/** * Set a profiler for cache operations. * * @param PhutilServiceProfiler $profiler Service profiler. * @return $this * @task kvimpl */ public function setProfiler(PhutilServiceProfiler $profiler) { $this->profiler = $profiler; return $this; }
/** * Get the current profiler. * * @return PhutilServiceProfiler|null Profiler, or null if none is set. * @task kvimpl */ public function getProfiler() { return $this->profiler; }
public function getKeys(array $keys) { $call_id = null; if ($this->getProfiler()) { $call_id = $this->getProfiler()->beginServiceCall( array( 'type' => 'kvcache-get', 'name' => $this->getName(), 'keys' => $keys, )); }
$results = parent::getKeys($keys);
if ($call_id !== null) { $this->getProfiler()->endServiceCall( $call_id, array( 'hits' => array_keys($results), )); }
return $results; }
public function setKeys(array $keys, $ttl = null) { $call_id = null; if ($this->getProfiler()) { $call_id = $this->getProfiler()->beginServiceCall( array( 'type' => 'kvcache-set', 'name' => $this->getName(), 'keys' => array_keys($keys), 'ttl' => $ttl, )); }
$result = parent::setKeys($keys, $ttl);
if ($call_id !== null) { $this->getProfiler()->endServiceCall($call_id, array()); }
return $result; }
public function deleteKeys(array $keys) { $call_id = null; if ($this->getProfiler()) { $call_id = $this->getProfiler()->beginServiceCall( array( 'type' => 'kvcache-del', 'name' => $this->getName(), 'keys' => $keys, )); }
$result = parent::deleteKeys($keys);
if ($call_id !== null) { $this->getProfiler()->endServiceCall($call_id, array()); }
return $result; }
}