sbergmann Thu Mar 1 09:18:23 2001 EDT
Modified files:
/php4/pear/Cache Container.php
/php4/pear/Cache/Container file.php phplib.php shm.php
Log:
Added flushPreload() method.
Index: php4/pear/Cache/Container.php
diff -u php4/pear/Cache/Container.php:1.1 php4/pear/Cache/Container.php:1.2
--- php4/pear/Cache/Container.php:1.1 Thu Mar 1 08:32:29 2001
+++ php4/pear/Cache/Container.php Thu Mar 1 09:18:22 2001
@@ -16,7 +16,7 @@
// | Sebastian Bergmann <[EMAIL PROTECTED]> |
// +----------------------------------------------------------------------+
//
-// $Id: Container.php,v 1.1 2001/03/01 16:32:29 chagenbu Exp $
+// $Id: Container.php,v 1.2 2001/03/01 17:18:22 sbergmann Exp $
/**
* Common base class of all cache storage container.
@@ -36,7 +36,7 @@
* not recommended!
*
* @author Ulf Wendel <[EMAIL PROTECTED]>
-* @version $Id: Container.php,v 1.1 2001/03/01 16:32:29 chagenbu Exp $
+* @version $Id: Container.php,v 1.2 2001/03/01 17:18:22 sbergmann Exp $
* @package Cache
* @access public
* @abstract
@@ -147,13 +147,8 @@
if ($expired = ($this->expires <= time() || ($max_age && $this->expires <=
time() + $max_age)) ) {
$this->delete($id);
+ $this->flushPreload();
- // remove preloaded values
- $this->id = "";
- $this->data = "";
- $this->expires = 0;
- $this->unknown = true;
-
}
return $expired;
@@ -210,6 +205,7 @@
* @abstract
*/
function save($id, $data, $expire = 0) {
+ $this->flushPreload($id);
return NULL;
} // end func save
@@ -223,6 +219,7 @@
* @abstract
*/
function delete($id) {
+ $this->flushPreload($id);
return NULL;
} // end func delete
@@ -235,6 +232,7 @@
* @abstract
*/
function flush() {
+ $this->flushPreload();
return NULL;
} // end func flush
@@ -257,6 +255,7 @@
* @abstract
*/
function garbageCollection() {
+ $this->flushPreload();
} // end func garbageCollection
/**
@@ -288,6 +287,27 @@
return true;
} // end func preload
+ /**
+ * Flushes the internal preload buffer.
+ *
+ * save(), delete() and flush() must call this method
+ * to preevent differences between the preloaded values and
+ * the real cache contents.
+ *
+ * @see preload()
+ */
+ function flushPreload($id = "") {
+
+ if (!$id || $this->id == $id) {
+ // clear the internal preload values
+ $this->id = "";
+ $this->data = "";
+ $this->expires = -1;
+ $this->unknown = true;
+ }
+
+ } // end func flushPreload
+
/**
* Imports the requested datafields as object variables if allowed
*
Index: php4/pear/Cache/Container/file.php
diff -u php4/pear/Cache/Container/file.php:1.1 php4/pear/Cache/Container/file.php:1.2
--- php4/pear/Cache/Container/file.php:1.1 Thu Mar 1 08:32:29 2001
+++ php4/pear/Cache/Container/file.php Thu Mar 1 09:18:23 2001
@@ -16,7 +16,7 @@
// | Sebastian Bergmann <[EMAIL PROTECTED]> |
// +----------------------------------------------------------------------+
//
-// $Id: file.php,v 1.1 2001/03/01 16:32:29 chagenbu Exp $
+// $Id: file.php,v 1.2 2001/03/01 17:18:23 sbergmann Exp $
require_once 'Cache/Container.php';
@@ -24,7 +24,7 @@
* Stores cache contents in a file.
*
* @author Ulf Wendel <[EMAIL PROTECTED]>
-* @version $Id: file.php,v 1.1 2001/03/01 16:32:29 chagenbu Exp $
+* @version $Id: file.php,v 1.2 2001/03/01 17:18:23 sbergmann Exp $
*/
class Cache_Container_file extends Cache_Container {
@@ -94,6 +94,8 @@
function save($id, $data, $expire = 0) {
+ $this->flushPreload($id);
+
$file = $this->getFilename($id);
if (!($fh = @fopen($file, "wb")))
return new CacheError("Can't access '$file' to store cache data. Check
access rights and path.", __FILE__, __LINE__);
@@ -115,6 +117,8 @@
function delete($id) {
+ $this->flushPreload($id);
+
$file = $this->getFilename($id);
if (file_exists($file)) {
@@ -130,6 +134,8 @@
function flush() {
+ $this->flushPreload();
+
if (!($dh = opendir($this->cache_dir)))
return new CacheError("Can't access the cache directory
'$this->cache_dir'. Check access rights and path", __FILE__, __LINE__);
@@ -167,6 +173,8 @@
*/
function garbageCollection() {
+ $this->flushPreload();
+
if (!($dh = opendir($this->cache_dir)))
return new CacheError("Can't access cache directory.", __FILE__,
__LINE__);
Index: php4/pear/Cache/Container/phplib.php
diff -u php4/pear/Cache/Container/phplib.php:1.1
php4/pear/Cache/Container/phplib.php:1.2
--- php4/pear/Cache/Container/phplib.php:1.1 Thu Mar 1 08:32:29 2001
+++ php4/pear/Cache/Container/phplib.php Thu Mar 1 09:18:23 2001
@@ -16,7 +16,7 @@
// | Sebastian Bergmann <[EMAIL PROTECTED]> |
// +----------------------------------------------------------------------+
//
-// $Id: phplib.php,v 1.1 2001/03/01 16:32:29 chagenbu Exp $
+// $Id: phplib.php,v 1.2 2001/03/01 17:18:23 sbergmann Exp $
require_once 'Cache/Container.php';
@@ -37,7 +37,7 @@
* Stores cache data into a database table.
*
* @author Ulf Wendel <[EMAIL PROTECTED]>, Sebastian Bergmann
<[EMAIL PROTECTED]>
-* @version $Id: phplib.php,v 1.1 2001/03/01 16:32:29 chagenbu Exp $
+* @version $Id: phplib.php,v 1.2 2001/03/01 17:18:23 sbergmann Exp $
* @package Cache
*/
class Cache_Container_phplib extends Cache_Container {
@@ -128,6 +128,8 @@
function save($id, $data, $expires = 0) {
+ $this->flushPreload($id);
+
$query = sprintf("REPLACE INTO %s (data, expires, id) VALUES ('%s', %d,
'%s')",
$this->cache_table,
$this->encode($data),
@@ -142,6 +144,8 @@
function delete($id) {
+ $this->flushPreload($id);
+
$query = sprintf("DELETE FROM %s WHERE id = '%s'",
$this->cache_table,
$id
@@ -154,6 +158,8 @@
function flush() {
+ $this->flushPreload();
+
$query = sprintf("DELETE FROM %s", $this->cache_table);
$this->db->query($query);
@@ -173,6 +179,8 @@
function garbageCollection() {
+ $this->flushPreload();
+
$query = sprintf("DELETE FORM %s WHERE expires <= %d AND expires > 0",
$this->cache_table,
time()
Index: php4/pear/Cache/Container/shm.php
diff -u php4/pear/Cache/Container/shm.php:1.1 php4/pear/Cache/Container/shm.php:1.2
--- php4/pear/Cache/Container/shm.php:1.1 Thu Mar 1 08:32:29 2001
+++ php4/pear/Cache/Container/shm.php Thu Mar 1 09:18:23 2001
@@ -17,7 +17,7 @@
// | Bj�rn Schotte <[EMAIL PROTECTED]> |
// +----------------------------------------------------------------------+
//
-// $Id: shm.php,v 1.1 2001/03/01 16:32:29 chagenbu Exp $
+// $Id: shm.php,v 1.2 2001/03/01 17:18:23 sbergmann Exp $
require_once 'Cache/Container.php';
@@ -25,7 +25,7 @@
* Stores cache data into shared memory.
*
* @author Bj�rn Schotte <[EMAIL PROTECTED]>
-* @version $Id: shm.php,v 1.1 2001/03/01 16:32:29 chagenbu Exp $
+* @version $Id: shm.php,v 1.2 2001/03/01 17:18:23 sbergmann Exp $
* @package Cache
*/
class Cache_Container_shm extends Cache_Container {
@@ -40,14 +40,17 @@
function save($id, $data, $expires = 0)
{
+ $this->flushPreload($id);
} // end func save
function delete($id)
{
+ $this->flushPreload($id);
} // end func delete
function flush()
{
+ $this->flushPreload();
} // end func flush
function idExists($id)
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]