1: <?php
2: /**
3: * This file is part of the FastFeed package.
4: *
5: * (c) Daniel González <daniel@desarrolla2.com>
6: *
7: * For the full copyright and license information, please view the LICENSE
8: * file that was distributed with this source code.
9: */
10:
11: namespace FastFeed;
12:
13: use Guzzle\Http\ClientInterface;
14: use Psr\Log\LoggerInterface;
15: use FastFeed\Parser\ParserInterface;
16: use FastFeed\Processor\ProcessorInterface;
17:
18: /**
19: * FeedManagerInterface
20: */
21: interface FastFeedInterface
22: {
23: /**
24: * Add feed to channel
25: *
26: * @param string $channel
27: * @param string $feed
28: *
29: * @throws InvalidArgumentException
30: */
31: public function addFeed($channel, $feed);
32:
33: /**
34: * @param string $channel
35: *
36: * @return array
37: * @throws Exception\InvalidArgumentException
38: */
39: public function fetch($channel = 'default');
40:
41: /**
42: * Retrieve a channel
43: *
44: * @param string $channel
45: *
46: * @return string
47: * @throws LogicException
48: */
49: public function getFeed($channel);
50:
51: /**
52: * @return ParserInterface
53: * @throws Exception\LogicException
54: */
55: public function popParser();
56:
57: /**
58: * @param ParserInterface $parser
59: */
60: public function pushParser(ParserInterface $parser);
61:
62: /**
63: * @return ProcessorInterface
64: * @throws Exception\LogicException
65: */
66: public function popProcessor();
67:
68: /**
69: * @param ProcessorInterface $processor
70: */
71: public function pushProcessor(ProcessorInterface $processor);
72:
73: /**
74: * Retrieve all channels
75: *
76: * @return array
77: */
78: public function getFeeds();
79:
80: /**
81: * Set Guzzle
82: *
83: * @param ClientInterface $guzzle
84: */
85: public function setHttpClient(ClientInterface $guzzle);
86:
87: /**
88: * @param LoggerInterface $logger
89: */
90: public function setLogger(LoggerInterface $logger);
91:
92: /**
93: * Set a channel
94: *
95: * @param string $channel
96: * @param string $feed
97: *
98: * @throws InvalidArgumentException
99: */
100: public function setFeed($channel, $feed);
101: }
102: