00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00018 final class XCacheSegmentHandler extends OptimizerSegmentHandler
00019 {
00020 public function __construct($segmentId)
00021 {
00022 parent::__construct($segmentId);
00023
00024 $this->locker = SemaphorePool::me();
00025 }
00026
00027 public function drop()
00028 {
00029 return xcache_unset($this->id);
00030 }
00031
00032 public function ping($key)
00033 {
00034 if (xcache_isset($this->id))
00035 return parent::ping($key);
00036 else
00037 return false;
00038 }
00039
00040 protected function getMap()
00041 {
00042 $this->locker->get($this->id);
00043
00044 if (!$map = xcache_get($this->id)) {
00045 $map = array();
00046 }
00047
00048 return $map;
00049 }
00050
00051 protected function storeMap(array $map)
00052 {
00053 $result = xcache_set($this->id, $map);
00054
00055 $this->locker->free($this->id);
00056
00057 return $result;
00058 }
00059 }
00060 ?>