Fri, 16 Jan 2015 18:13:44 +0100
Integrate suggestion from review to improve consistency with existing code.
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "nsIFeedContainer.idl"
8 interface nsIArray;
9 interface nsIFeedGenerator;
11 /**
12 * An nsIFeed represents a single Atom or RSS feed.
13 */
14 [scriptable, uuid(3b8aae33-80e2-4efa-99c8-a6c5b99f76ea)]
15 interface nsIFeed : nsIFeedContainer
16 {
17 /**
18 * Uses description, subtitle, and extensions
19 * to generate a summary.
20 */
21 attribute nsIFeedTextConstruct subtitle;
23 // All content classifies as a "feed" - it is the transport.
24 const unsigned long TYPE_FEED = 0;
25 const unsigned long TYPE_AUDIO = 1;
26 const unsigned long TYPE_IMAGE = 2;
27 const unsigned long TYPE_VIDEO = 4;
29 /**
30 * The type of feed. For example, a podcast would be TYPE_AUDIO.
31 */
32 readonly attribute unsigned long type;
34 /**
35 * The total number of enclosures found in the feed.
36 */
37 attribute long enclosureCount;
39 /**
40 * The items or entries in feed.
41 */
42 attribute nsIArray items;
44 /**
45 * No one really knows what cloud is for.
46 *
47 * It supposedly enables some sort of interaction with an XML-RPC or
48 * SOAP service.
49 */
50 attribute nsIWritablePropertyBag2 cloud;
52 /**
53 * Information about the software that produced the feed.
54 */
55 attribute nsIFeedGenerator generator;
57 /**
58 * An image url and some metadata (as defined by RSS2).
59 *
60 */
61 attribute nsIWritablePropertyBag2 image;
63 /**
64 * No one really knows what textInput is for.
65 *
66 * See
67 * <http://www.cadenhead.org/workbench/news/2894/rss-joy-textinput>
68 * for more details.
69 */
70 attribute nsIWritablePropertyBag2 textInput;
72 /**
73 * Days to skip fetching. This field was supposed to designate
74 * intervals for feed fetching. It's not generally implemented. For
75 * example, if this array contained "Monday", aggregators should not
76 * fetch the feed on Mondays.
77 */
78 attribute nsIArray skipDays;
80 /**
81 * Hours to skip fetching. This field was supposed to designate
82 * intervals for feed fetching. It's not generally implemented. See
83 * <http://blogs.law.harvard.edu/tech/rss> for more information.
84 */
85 attribute nsIArray skipHours;
86 };