MediaWiki
REL1_22
|
00001 <?php 00030 class HashBagOStuff extends BagOStuff { 00031 var $bag; 00032 00033 function __construct() { 00034 $this->bag = array(); 00035 } 00036 00041 protected function expire( $key ) { 00042 $et = $this->bag[$key][1]; 00043 00044 if ( ( $et == 0 ) || ( $et > time() ) ) { 00045 return false; 00046 } 00047 00048 $this->delete( $key ); 00049 00050 return true; 00051 } 00052 00058 function get( $key, &$casToken = null ) { 00059 if ( !isset( $this->bag[$key] ) ) { 00060 return false; 00061 } 00062 00063 if ( $this->expire( $key ) ) { 00064 return false; 00065 } 00066 00067 $casToken = $this->bag[$key][0]; 00068 00069 return $this->bag[$key][0]; 00070 } 00071 00078 function set( $key, $value, $exptime = 0 ) { 00079 $this->bag[$key] = array( $value, $this->convertExpiry( $exptime ) ); 00080 return true; 00081 } 00082 00090 function cas( $casToken, $key, $value, $exptime = 0 ) { 00091 if ( $this->get( $key ) === $casToken ) { 00092 return $this->set( $key, $value, $exptime ); 00093 } 00094 00095 return false; 00096 } 00097 00103 function delete( $key, $time = 0 ) { 00104 if ( !isset( $this->bag[$key] ) ) { 00105 return false; 00106 } 00107 00108 unset( $this->bag[$key] ); 00109 00110 return true; 00111 } 00112 }