File indexing completed on 2024-04-14 03:58:26

0001 /*
0002     This file is part of the syndication library
0003     SPDX-FileCopyrightText: 2006 Frank Osterfeld <osterfeld@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef SYNDICATION_RDF_CONTENTVOCAB_H
0009 #define SYNDICATION_RDF_CONTENTVOCAB_H
0010 
0011 #include <QSharedPointer>
0012 
0013 #include "../syndication_export.h"
0014 
0015 #include <memory>
0016 
0017 class QString;
0018 
0019 namespace Syndication
0020 {
0021 namespace RDF
0022 {
0023 class Property;
0024 //@cond PRIVATE
0025 typedef QSharedPointer<Property> PropertyPtr;
0026 //@endcond
0027 /**
0028  * Singleton holding RDF class and property constants of the RSS 1.0 content
0029  * module. See http://web.resource.org/rss/1.0/modules/content/ for a
0030  * specification.
0031  *
0032  * @author Frank Osterfeld
0033  */
0034 class ContentVocab
0035 {
0036 public:
0037     /**
0038      * returns the singleton instance
0039      */
0040     static ContentVocab *self();
0041 
0042     /**
0043      * destructor
0044      */
0045     ~ContentVocab();
0046 
0047     /**
0048      * Namespace of the Content module
0049      *
0050      * http://purl.org/rss/1.0/modules/content/
0051      **/
0052     const QString &namespaceURI() const;
0053 
0054     /**
0055      * content:encoded property
0056      */
0057     PropertyPtr encoded() const;
0058 
0059 private:
0060     ContentVocab();
0061     Q_DISABLE_COPY(ContentVocab)
0062 
0063     class ContentVocabPrivate;
0064     std::unique_ptr<ContentVocabPrivate> const d;
0065 };
0066 
0067 } // namespace RDF
0068 } // namespace Syndication
0069 
0070 #endif // SYNDICATION_RDF_CONTENTVOCAB_H