note 97868 added to function.shm-get-var

From: Date: Thu, 13 May 2010 04:07:26 +0000
Subject: note 97868 added to function.shm-get-var
Groups: php.notes 
Request: Send a blank email to php-notes+get-169198@lists.php.net to get a copy of this message
class shm{// shared memory by name instead of number. var $shm_permissions=0666; var $shm_size=2048; var $shm_key=4096; var $shm_handle=NULL; var $aData=Array(); var $aMap=NULL; var $shm_bSticky=FALSE; function shm($aParams=Array()) { $aDef=Array("shm_key"=>4096); foreach($aDef as $key=>$value)if(!isset($aParams[$key])) $aParams[$key]=$aDef[$key]; foreach($aParams as $key=>$value)$this->$key=$value; $this->shm_attach($this->shm_key); } function __destruct() {if($this->shm_bSticky===TRUE) return;$this->shm_detach();} public function __set($name, $value){$this->shm_put_var($name,$value);} public function __unset($name){$this->shm_remove_var($name);} public function __get($name){return $this->shm_get_var($name);} function shm_get_key($name,$bCreate=TRUE) { if($this->shm_handle==NULL)$this->shm_attach() ; if($this->shm_handle==NULL)return -1 ; if(isset($this->aMap[$name]))return $this->aMap[$name]; if( shm_has_var($this->shm_handle,0 )) $this->aMap=shm_get_var($this->shm_handle,0); else shm_put_var($this->shm_handle,0, ($this->aMap=Array("aMap"=>0))); if(isset($this->aMap[$name]))return intval($this->aMap[$name]); if($bCreate==FALSE)return -1; $this->aMap[$name]=count($this->aMap); shm_put_var($this->shm_handle,0 ,$this->aMap ); shm_put_var($this->shm_handle,$this->aMap[$name],NULL ); return (intval($this->aMap[$name])); } function shm_attach() {if($this->shm_handle!=NULL)$this->shm_detach(); $this->shm_handle=shm_attach(intval($this->shm_key), $this->shm_size,0666); if(shm_has_var($this->shm_handle,0)) $this->aMap=shm_get_var($this->shm_handle,0); return ($this->shm_handle);} function shm_detach() {if($this->shm_handle==NULL)return NULL ; $result =shm_detach($this->shm_handle) ; $this->shm_handle =NULL ; return $result;} function shm_get_var($name,$bCache=FALSE) {if(($iKey=$this->shm_get_key($name))==-1)return NULL; if(!isset($aData[$name]))$bCache=FALSE; if($bCache===FALSE) $aData[$name]=shm_get_var($this->shm_handle,$iKey); return $aData[$name];} function shm_has_var($name) {if(($iKey=$this->shm_get_key($name,FALSE))==-1) return FALSE;return TRUE;} function shm_put_var($name,$value=NULL) {if(($iKey=$this->shm_get_key($name,TRUE ))==-1) return FALSE; return shm_put_var($this->shm_handle,$iKey,$value);} function shm_remove_var($name) {if(($iKey=$this->shm_get_key($name,FALSE))==-1)return TRUE; unset($this->aMap[$name]); return shm_remove_var($this->shm_handle,$iKey);} function shm_list($bCache=FALSE) {$aList=Array(); if($bCache===TRUE)return $this->aData; if($this->aMap!=NULL)foreach($this->aMap as $key=>$value) {if($key=="aMap")continue;$aList[$key]=$this->shm_get_var($key);} return $aList;} function shm_remove() {if($this->shm_handle==NULL)$this->shm_attach(); if($this->shm_handle==NULL)return NULL; $result =shm_remove($this->shm_handle); $this->shm_handle=NULL; $this->aData =NULL; $this->aMap =NULL; return $result;} function kill(){shm_remove($this->shm_handle);} }// /class shm ---- Server IP: 64.71.164.2 Probable Submitter: 65.49.163.54 ---- Manual Page -- http://www.php.net/manual/en/function.shm-get-var.php Edit -- https://master.php.net/note/edit/97868 Del: integrated -- https://master.php.net/note/delete/97868/integrated Del: useless -- https://master.php.net/note/delete/97868/useless Del: bad code -- https://master.php.net/note/delete/97868/bad+code Del: spam -- https://master.php.net/note/delete/97868/spam Del: non-english -- https://master.php.net/note/delete/97868/non-english Del: in docs -- https://master.php.net/note/delete/97868/in+docs Del: other reasons-- https://master.php.net/note/delete/97868 Reject -- https://master.php.net/note/reject/97868 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#169198) next »