1: <?php
2: /**
3: * Marks a queriable class.
4: *
5: * PHP version 5
6: *
7: * @category Kolab
8: * @package Kolab_Storage
9: * @author Gunnar Wrobel <wrobel@pardus.de>
10: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
11: * @link http://pear.horde.org/index.php?package=Kolab_Storage
12: */
13:
14: /**
15: * Marks a queriable class.
16: *
17: * Copyright 2010-2012 Horde LLC (http://www.horde.org/)
18: *
19: * See the enclosed file COPYING for license information (LGPL). If you
20: * did not receive this file, see http://www.horde.org/licenses/lgpl21.
21: *
22: * @category Kolab
23: * @package Kolab_Storage
24: * @author Gunnar Wrobel <wrobel@pardus.de>
25: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
26: * @link http://pear.horde.org/index.php?package=Kolab_Storage
27: */
28: interface Horde_Kolab_Storage_Queriable
29: {
30: /**
31: * Register a query to be updated if the underlying data changes.
32: *
33: * @param string $name The query name.
34: * @param Horde_Kolab_Storage_Query $query The query to register.
35: *
36: * @return NULL
37: */
38: public function registerQuery($name, Horde_Kolab_Storage_Query $query);
39:
40: /**
41: * Return a registered query.
42: *
43: * @param string $name The query name.
44: *
45: * @return Horde_Kolab_Storage_Query The requested query.
46: *
47: * @throws Horde_Kolab_Storage_Exception In case the requested query does
48: * not exist.
49: */
50: public function getQuery($name = null);
51: }
52:
53: