コード例 #1
0
ファイル: Hashtable.php プロジェクト: raz0rsdge/horde
 /**
  * Updates the cache.
  */
 public function save()
 {
     foreach ($this->_update as $mbox => $val) {
         try {
             if (!empty($val['u'])) {
                 $ptr =& $this->_data[$mbox];
                 foreach ($this->_getMsgCids($mbox, array_keys($val['u'])) as $k2 => $v2) {
                     try {
                         $this->_hash->set($v2, $this->_pack->pack($ptr[$k2]), array('expire' => $this->_params['lifetime']));
                     } catch (Horde_Pack_Exception $e) {
                         $this->deleteMsgs($mbox, array($v2));
                         $val['d'][] = $v2;
                     }
                 }
             }
             if (!empty($val['d'])) {
                 $this->_hash->delete(array_values($this->_getMsgCids($mbox, $val['d'])));
             }
             if (!empty($val['m'])) {
                 try {
                     $this->_hash->set($this->_getCid($mbox), $this->_pack->pack($this->_mbox[$mbox]), array('expire' => $this->_params['lifetime']));
                 } catch (Horde_Pack_Exception $e) {
                 }
             }
         } catch (Horde_Exception $e) {
         }
     }
     $this->_update = array();
 }
コード例 #2
0
ファイル: Hashtable.php プロジェクト: jubinpatel/horde
 /**
  */
 public function destroy($id)
 {
     $res = $this->_hash->delete($id);
     $this->_hash->unlock($id);
     if ($res === false) {
         return false;
     }
     if (!empty($this->_params['track'])) {
         $this->_hash->lock($this->_trackID);
         if ($ids = $this->_getTrackIds()) {
             unset($ids[$id]);
             $this->_hash->set($this->_trackID, json_encode($ids));
         }
         $this->_hash->unlock($this->_trackID);
     }
     return true;
 }
コード例 #3
0
ファイル: Hashtable.php プロジェクト: horde/horde
 /**
  */
 public function expire($key)
 {
     $this->_hash->delete(array($this->_getKey($key), $this->_getKey($key, true)));
 }