+++ /dev/null
-
-<?php
-
-// PICKLE_PATH="/home/soltesz/research/planetlab/monitor3/pdb";
-define("PICKLE_PATH", "pdb");
-
-class Pickle
-{
- public function load($name)
- {
- if ( ! $this->exists("production." . $name) )
- {
- print "Exception: No such file %s" . $name . "\n";
- return NULL;
- }
- $name = "production." . $name;
- $fname = $this->__file($name);
- $o = unserialize(file_get_contents($fname));
-
- return $o;
- }
- public function dump($name, $obj)
- {
- if ( ! file_exists(PICKLE_PATH) )
- {
- if ( ! mkdir(PICKLE_PATH, 0777, True) )
- {
- print "Exception: Unable to create directory :" . PICKLE_PATH . "\n";
- }
- }
- $name = "production." . $name;
- $fname = $this->__file($name);
-
- return file_put_contents($fname, serialize($obj));
- }
- private function __file($name)
- {
- return sprintf("%s/%s.phpserial", PICKLE_PATH, $name);
- }
-
- public function exists($name)
- {
- return file_exists($this->__file($name));
- }
-
- public function remove($name)
- {
- return unlink($this->__file($name));
- }
-
- public function if_cached_else($cond, $name, $function)
- {
- if ( $cond and $this->exists("production.%s" % $name) )
- {
- $o = $this->load($name);
- } else {
- $o = $function();
- if ($cond)
- {
- $this->dump($name, $o); # cache the object using 'name'
- }
- }
- return o;
- }
-}
-
-?>