public function cas($key, $var = null, $flag = 0, $exptime = 0, $cas = 0)
 {
     if ($this->logging) {
         $start = microtime(true);
         $name = 'cas';
         $arguments = array($key, $var, $flag, $exptime, $cas);
     }
     list($_key, $_var, $_flag, $_exptime, $_cas) = array($key, $var, $flag, $exptime, $cas);
     $result = parent::cas($_key, $_var, $_flag, $_exptime, $_cas);
     list($key, $var, $flag, $exptime, $cas) = array($_key, $_var, $_flag, $_exptime, $_cas);
     if ($this->logging) {
         $time = microtime(true) - $start;
         $this->calls[] = (object) compact('start', 'time', 'name', 'arguments', 'result');
     }
     return $result;
 }