File indexing completed on 2024-10-13 12:20:36
0001 /* 0002 This file is part of the syndication library 0003 SPDX-FileCopyrightText: 2005 Frank Osterfeld <osterfeld@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef SYNDICATION_RSS2_CLOUD_H 0009 #define SYNDICATION_RSS2_CLOUD_H 0010 0011 #include <syndication/elementwrapper.h> 0012 0013 class QDomElement; 0014 class QString; 0015 0016 namespace Syndication 0017 { 0018 namespace RSS2 0019 { 0020 /** 0021 * Cloud information for an RSS channel. 0022 * It specifies a web service that supports the rssCloud interface which can 0023 * be implemented in HTTP-POST, XML-RPC or SOAP 1.1. 0024 * Its purpose is to allow processes to register with a cloud to be notified 0025 * of updates to the channel, 0026 * implementing a lightweight publish-subscribe protocol for RSS feeds. 0027 * 0028 * Example: 0029 * 0030 * Domain="rpc.sys.com", port="80", path="/RPC2" 0031 * registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" 0032 * 0033 * In this example, to request notification on the channel it appears in, 0034 * you would send an XML-RPC message to rpc.sys.com on port 80, with a path 0035 * of /RPC2. The procedure to call is myCloud.rssPleaseNotify. 0036 * 0037 * For more information on the rssCloud interface see 0038 * http://blogs.law.harvard.edu/tech/soapMeetsRss#rsscloudInterface 0039 * 0040 * (Note: This explanation was taken from 0041 * http://blogs.law.harvard.edu/tech/rss ) 0042 * 0043 * @author Frank Osterfeld 0044 */ 0045 class SYNDICATION_EXPORT Cloud : public ElementWrapper 0046 { 0047 public: 0048 /** 0049 * Default constructor, creates a null object, for which isNull() 0050 * is @p true. 0051 */ 0052 Cloud(); 0053 0054 /** 0055 * Creates a Cloud object wrapping a @c <cloud> XML element. 0056 * 0057 * @param element The @c <cloud> element to wrap 0058 */ 0059 explicit Cloud(const QDomElement &element); 0060 0061 /** 0062 * the remote domain 0063 */ 0064 QString domain() const; 0065 0066 /** 0067 * the remote port to connect to 0068 */ 0069 int port() const; 0070 0071 /** 0072 * the remote path to connect to 0073 */ 0074 QString path() const; 0075 0076 /** 0077 * register procedure, e.g. "myCloud.rssPleaseNotify" 0078 */ 0079 QString registerProcedure() const; 0080 0081 /** 0082 * protocol used for publish-subscribe, e.g. "xml-rpc" 0083 */ 0084 QString protocol() const; 0085 0086 /** 0087 * Returns a description of the object for debugging purposes. 0088 * 0089 * @return debug string 0090 */ 0091 QString debugInfo() const; 0092 }; 0093 0094 } // namespace RSS2 0095 } // namespace Syndication 0096 0097 #endif // SYNDICATION_RSS2_CLOUD_H