24 global $shmkeys, $shmoffset;
26 $shmkeys = array(
'main'=>1,
'admin'=>2,
'dict'=>3,
'companies'=>4,
'suppliers'=>5,
'products'=>6,
27 'commercial'=>7,
'compta'=>8,
'projects'=>9,
'cashdesk'=>10,
'agenda'=>11,
'bills'=>12,
28 'propal'=>13,
'boxes'=>14,
'banks'=>15,
'other'=>16,
'errors'=>17,
'members'=>18,
'ecm'=>19,
29 'orders'=>20,
'users'=>21,
'help'=>22,
'stocks'=>23,
'interventions'=>24,
30 'donations'=>25,
'contracts'=>26);
48 if (!empty($conf->memcached->enabled) && class_exists(
'Memcached'))
51 if (empty($dolmemcache) || !is_object($dolmemcache))
53 $dolmemcache =
new Memcached();
54 $tmparray = explode(
':', $conf->global->MEMCACHED_SERVER);
55 $result = $dolmemcache->addServer($tmparray[0], $tmparray[1] ? $tmparray[1] : 11211);
56 if (!$result)
return -1;
59 $memoryid = session_name().
'_'.$memoryid;
61 $dolmemcache->add($memoryid, $data);
62 $rescode = $dolmemcache->getResultCode();
69 } elseif (!empty($conf->memcached->enabled) && class_exists(
'Memcache'))
72 if (empty($dolmemcache) || !is_object($dolmemcache))
74 $dolmemcache =
new Memcache();
75 $tmparray = explode(
':', $conf->global->MEMCACHED_SERVER);
76 $result = $dolmemcache->addServer($tmparray[0], $tmparray[1] ? $tmparray[1] : 11211);
77 if (!$result)
return -1;
80 $memoryid = session_name().
'_'.$memoryid;
82 $result = $dolmemcache->add($memoryid, $data);
90 elseif (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02))
109 if (!empty($conf->memcached->enabled) && class_exists(
'Memcached'))
112 if (empty($m) || !is_object($m))
114 $m =
new Memcached();
115 $tmparray = explode(
':', $conf->global->MEMCACHED_SERVER);
116 $result = $m->addServer($tmparray[0], $tmparray[1] ? $tmparray[1] : 11211);
117 if (!$result)
return -1;
120 $memoryid = session_name().
'_'.$memoryid;
123 $data = $m->get($memoryid);
124 $rescode = $m->getResultCode();
133 } elseif (!empty($conf->memcached->enabled) && class_exists(
'Memcache'))
136 if (empty($m) || !is_object($m))
139 $tmparray = explode(
':', $conf->global->MEMCACHED_SERVER);
140 $result = $m->addServer($tmparray[0], $tmparray[1] ? $tmparray[1] : 11211);
141 if (!$result)
return -1;
144 $memoryid = session_name().
'_'.$memoryid;
146 $data = $m->get($memoryid);
156 elseif (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x02))
175 global $shmkeys, $shmoffset;
176 if (empty($shmkeys[$memoryid]))
return 0;
177 return $shmkeys[$memoryid] + $shmoffset;
187 global $shmkeys, $shmoffset;
190 foreach ($shmkeys as $key => $val)
193 if (!is_numeric($result) || $result > 0) $resarray[$key] = $result;
207 global $shmkeys, $shmoffset;
210 if (empty($shmkeys[$memoryid]) || !function_exists(
"shmop_write"))
return 0;
212 $newdata = serialize($data);
213 $size = strlen($newdata);
215 $handle = shmop_open($shmkey,
'c', 0644, 6 + $size);
218 $shm_bytes_written1 = shmop_write($handle, str_pad($size, 6), 0);
219 $shm_bytes_written2 = shmop_write($handle, $newdata, 6);
220 if (($shm_bytes_written1 + $shm_bytes_written2) != (6 +
dol_strlen($newdata)))
222 print "Couldn't write the entire length of data\n";
224 shmop_close($handle);
225 return ($shm_bytes_written1 + $shm_bytes_written2);
227 print 'Error in shmop_open for memoryid='.$memoryid.
' shmkey='.$shmkey.
' 6+size=6+'.$size;
240 global $shmkeys, $shmoffset;
242 if (empty($shmkeys[$memoryid]) || !function_exists(
"shmop_open"))
return 0;
245 $handle = @shmop_open($shmkey,
'a', 0, 0);
248 $size = trim(shmop_read($handle, 0, 6));
249 if ($size) $data = unserialize(shmop_read($handle, 6, $size));
251 shmop_close($handle);
dol_getcache($memoryid)
Read a memory area shared by all users, all sessions on server.
dol_getshmop($memoryid)
Read a memory area shared by all users, all sessions on server.
dol_getshmopaddress($memoryid)
Return shared memory address used to store dataset with key memoryid.
dol_setshmop($memoryid, $data)
Save data into a memory area shared by all users, all sessions on server.
dol_strlen($string, $stringencoding= 'UTF-8')
Make a strlen call.
dol_setcache($memoryid, $data)
Save data into a memory area shared by all users, all sessions on server.
dol_listshmop()
Return list of contents of all memory area shared.
print
Draft customers invoices.