3 * see AUTHORS for the list of contributors
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 package org.sonews.feed;
21 import java.util.List;
22 import org.sonews.storage.Article;
23 import org.sonews.storage.StorageBackendException;
24 import org.sonews.storage.StorageManager;
27 * Controlls push and pull feeder.
28 * @author Christian Lins
31 public final class FeedManager
34 public static final int TYPE_PULL = 0;
35 public static final int TYPE_PUSH = 1;
37 private static PullFeeder pullFeeder = new PullFeeder();
38 private static PushFeeder pushFeeder = new PushFeeder();
41 * Reads the peer subscriptions from database and starts the appropriate
42 * PullFeeder or PushFeeder.
44 public static synchronized void startFeeding()
45 throws StorageBackendException
47 List<Subscription> subsPull = StorageManager.current()
48 .getSubscriptions(TYPE_PULL);
49 for(Subscription sub : subsPull)
51 pullFeeder.addSubscription(sub);
55 List<Subscription> subsPush = StorageManager.current()
56 .getSubscriptions(TYPE_PUSH);
57 for(Subscription sub : subsPush)
59 pushFeeder.addSubscription(sub);
64 public static void queueForPush(Article article)
66 pushFeeder.queueForPush(article);
69 private FeedManager() {}