1: <?php
2: /**
3: * SimplePie
4: *
5: * A PHP-Based RSS and Atom Feed Framework.
6: * Takes the hard work out of managing a complete RSS/Atom solution.
7: *
8: * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
9: * All rights reserved.
10: *
11: * Redistribution and use in source and binary forms, with or without modification, are
12: * permitted provided that the following conditions are met:
13: *
14: * * Redistributions of source code must retain the above copyright notice, this list of
15: * conditions and the following disclaimer.
16: *
17: * * Redistributions in binary form must reproduce the above copyright notice, this list
18: * of conditions and the following disclaimer in the documentation and/or other materials
19: * provided with the distribution.
20: *
21: * * Neither the name of the SimplePie Team nor the names of its contributors may be used
22: * to endorse or promote products derived from this software without specific prior
23: * written permission.
24: *
25: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
26: * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
27: * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
28: * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
32: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33: * POSSIBILITY OF SUCH DAMAGE.
34: *
35: * @package SimplePie
36: * @version 1.3
37: * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
38: * @author Ryan Parman
39: * @author Geoffrey Sneddon
40: * @author Ryan McCue
41: * @link http://simplepie.org/ SimplePie
42: * @license http://www.opensource.org/licenses/bsd-license.php BSD License
43: */
44:
45: /**
46: * Base for cache objects
47: *
48: * Classes to be used with {@see SimplePie_Cache::register()} are expected
49: * to implement this interface.
50: *
51: * @package SimplePie
52: * @subpackage Caching
53: */
54: interface SimplePie_Cache_Base
55: {
56: /**
57: * Feed cache type
58: *
59: * @var string
60: */
61: const TYPE_FEED = 'spc';
62:
63: /**
64: * Image cache type
65: *
66: * @var string
67: */
68: const TYPE_IMAGE = 'spi';
69:
70: /**
71: * Create a new cache object
72: *
73: * @param string $location Location string (from SimplePie::$cache_location)
74: * @param string $name Unique ID for the cache
75: * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
76: */
77: public function __construct($location, $name, $type);
78:
79: /**
80: * Save data to the cache
81: *
82: * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
83: * @return bool Successfulness
84: */
85: public function save($data);
86:
87: /**
88: * Retrieve the data saved to the cache
89: *
90: * @return array Data for SimplePie::$data
91: */
92: public function load();
93:
94: /**
95: * Retrieve the last modified time for the cache
96: *
97: * @return int Timestamp
98: */
99: public function mtime();
100:
101: /**
102: * Set the last modified time to the current time
103: *
104: * @return bool Success status
105: */
106: public function touch();
107:
108: /**
109: * Remove the cache
110: *
111: * @return bool Success status
112: */
113: public function unlink();
114: }
115: