1: <?php
2: /**
3: * This file defines the base driver class for Ingo_Script_Imap::.
4: *
5: * Copyright 2003-2012 Horde LLC (http://www.horde.org/)
6: *
7: * See the enclosed file LICENSE for license information (ASL). If you
8: * did not receive this file, see http://www.horde.org/licenses/apache.
9: *
10: * @author Michael Slusarz <slusarz@horde.org>
11: * @category Horde
12: * @license http://www.horde.org/licenses/apache ASL
13: * @package Ingo
14: */
15: abstract class Ingo_Script_Imap_Api
16: {
17: /**
18: * Configuration parameters.
19: *
20: * @var array
21: */
22: protected $_params;
23:
24: /**
25: * TODO
26: */
27: static public function factory($type, $params)
28: {
29: $class = 'Ingo_Script_Imap_' . ucfirst($type);
30: return new $class($params);
31: }
32:
33: /**
34: * TODO
35: */
36: public function __construct($params = array())
37: {
38: $this->_params = $params;
39: }
40:
41: /**
42: * TODO
43: *
44: * @return mixed
45: */
46: abstract public function deleteMessages($indices);
47:
48: /**
49: * TODO
50: *
51: * @return boolean
52: */
53: abstract public function moveMessages($indices, $folder);
54:
55: /**
56: * TODO
57: *
58: * @return boolean
59: */
60: abstract public function copyMessages($indices, $folder);
61:
62: /**
63: * TODO
64: */
65: abstract public function setMessageFlags($indices, $flags);
66:
67: /**
68: * TODO
69: *
70: * @return Horde_Imap_Client_Data_Fetch
71: */
72: abstract public function fetchEnvelope($indices);
73:
74: /**
75: * TODO
76: */
77: abstract public function search($query);
78:
79: /**
80: * TODO
81: */
82: public function getCache()
83: {
84: return false;
85: }
86:
87: /**
88: * TODO
89: */
90: public function storeCache($timestamp)
91: {
92: }
93:
94: }
95: