Wordpress 3.5
[autoinstalls/wordpress.git] / wp-includes / SimplePie / Cache / Base.php
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.1
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 }