File indexing completed on 2024-04-14 14:16:52

0001 /*
0002     This file is part of KDE.
0003 
0004     SPDX-FileCopyrightText: 2018 Ralf Habacker <ralf.habacker@freenet.de>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 #ifndef ATTICA_CONFIG_H
0009 #define ATTICA_CONFIG_H
0010 
0011 #include <QSharedDataPointer>
0012 #include <QString>
0013 
0014 #include "attica_export.h"
0015 
0016 namespace Attica
0017 {
0018 /**
0019  * @class Config config.h <Attica/Config>
0020  *
0021  * Represents a server config
0022  */
0023 class ATTICA_EXPORT Config
0024 {
0025 public:
0026     typedef QList<Config> List;
0027     class Parser;
0028 
0029     /**
0030      * Creates an empty Config
0031      */
0032     Config();
0033 
0034     /**
0035      * Copy constructor.
0036      * @param other the Config to copy from
0037      */
0038     Config(const Config &other);
0039 
0040     /**
0041      * Assignment operator.
0042      * @param other the Config to assign from
0043      * @return pointer to this Config
0044      */
0045     Config &operator=(const Config &other);
0046 
0047     /**
0048      * Destructor.
0049      */
0050     ~Config();
0051 
0052     QString contact() const;
0053     QString host() const;
0054     QString version() const;
0055     bool ssl() const;
0056     QString website() const;
0057 
0058     void setContact(const QString &contact);
0059     void setHost(const QString &host);
0060     void setSsl(bool ssl);
0061     void setVersion(const QString &version);
0062     void setWebsite(const QString &website);
0063 
0064     /**
0065      * Checks whether this config is valid
0066      * @return @c true if config is valid, @c false otherwise
0067      */
0068     bool isValid() const;
0069 
0070 private:
0071     class Private;
0072     QSharedDataPointer<Private> d;
0073 };
0074 
0075 }
0076 
0077 #endif