[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    www/areas/cvs-digest/enzyme
From:       Derek Kite <dkite () netidea ! com>
Date:       2004-05-01 3:16:21
Message-ID: 20040501031621.23D029A80 () office ! kde ! org
[Download RAW message or body]

CVS commit by dkite: 

Implement cache class. 


  M +71 -10    enzyme_cache.php   1.3


--- www/areas/cvs-digest/enzyme/enzyme_cache.php  #1.2:1.3
@@ -26,27 +26,88 @@
 
   var $default_directory;
-  var $ctrl_file;
-  var $expire_time;
   var $cache_url;
   
-function enzyme_cache ($url,$expire) {    // url is filename, expire is 'never', or \
                hours
-  $this->default_directory = "cache/";
-  
+function enzyme_cache ($url,$expire,$c) {    // url is filename, expire is 'never' \
or 'expire', cache true or false +  $this->default_directory = "cache/$expire";
+  $this->cache_url = $url;
+  if (($c == false) and ($this->incache()))
+    $this->publish();
+  else
+    $this->setupsave();
 }
   
 
-function publish() {    //  either reads and echo's cache file or output buffer.
+function setupsave() {
+  ob_start();
+}
 
+function cacheandout() {
+  $id = md5($this->cache_url);
+  $fh = fopen("$this->default_directory/$id","w");
+  fwrite($fh,ob_get_contents());
+  fclose($fh);
+  ob_end_flush();
 }
+  
 
-function valid() {    // checks if url exists and is valid, if so returns true. if \
                not, turns on output buffering.
-  return false;
+function publish() {    //  either reads and echo's cache file or output buffer.
+  $id = md5($this->cache_url);
+  echo readfile("$this->default_directory/$id");
+  exit;
+}
 
+function incache() {    // checks if url exists and is valid, if so returns true. if \
not, turns on output buffering. +  $id = md5($this->cache_url);
+  return file_exists("$this->default_directory/$id");
 }
 
 }  
 
-
-
+function cache($request)   {
+  // different caching expiries.
+  // digest: never
+  // list: at each update
+  // diff: never
+  // stat: never
+  // under directory cache/keep cache/expire. cache/expire is emptied by others
+  $refresh = false;
+  if (array_key_exists("refresh", $request))
+    $refresh = true;
+  
+  //build urls in same order
+  
+  if (array_key_exists("issue", $request)) {
+    $i = $request["issue"];
+    $c = new enzyme_cache("issue=$i","never",$refresh);
+    return $c;
+  }
+  
+  if (array_key_exists("stat", $request))  {
+    $p = $request["period"];
+    $c = new enzyme_cache("stat&period=$p","never",$refresh);
+    return $c;
+  }
+  
+  if (array_key_exists("list", $request))  {
+    $v = $request["version"];
+    $f = $request["file"];
+    $u = $request["user"];
+    $b = $request["branch"];
+    $s = $request["starttime"];
+    $e = $request["endtime"];
+    $c = new enzyme_cache("file=$f&version=$v&user=$u&branch=$b&starttime=$s&endtime=$e","expire",$refresh);
 +    return $c;
+  }  
+  
+  if (array_key_exists("diff", $request)) {
+    $v = $request["version"];
+    $f = $request["file"];
+    $c = new enzyme_cache("file=$f&version=$v","never",$refresh);
+    return $c;
+  }
+  
+  $c = new enzyme_cache("index","expire",true);
+  return $c;
+}
 
 ?>
\ No newline at end of file


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic