aboutsummaryrefslogtreecommitdiff
path: root/tier1/kconfig/src/core/kconfigbackend.h
diff options
context:
space:
mode:
Diffstat (limited to 'tier1/kconfig/src/core/kconfigbackend.h')
-rw-r--r--tier1/kconfig/src/core/kconfigbackend.h211
1 files changed, 0 insertions, 211 deletions
diff --git a/tier1/kconfig/src/core/kconfigbackend.h b/tier1/kconfig/src/core/kconfigbackend.h
deleted file mode 100644
index 49239e66..00000000
--- a/tier1/kconfig/src/core/kconfigbackend.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- This file is part of the KDE libraries
- Copyright (c) 2006, 2007 Thomas Braxton <kde.braxton@gmail.com>
- Copyright (c) 1999 Preston Brown <pbrown@kde.org>
- Portions copyright (c) 1997 Matthias Kalle Dalheimer <kalle@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KCONFIGBACKEND_H
-#define KCONFIGBACKEND_H
-
-#include <QtCore/QObject>
-#include <QtCore/QString>
-#include <QExplicitlySharedDataPointer>
-
-#include <kconfigcore_export.h>
-#include <kconfigbase.h>
-
-class KEntryMap;
-class QFile;
-class QByteArray;
-class QDateTime;
-
-/**
- * \class KConfigBackend kconfigbackend.h <KConfigBackend>
- *
- * Provides the implementation for accessing configuration sources.
- *
- * KDELibs only provides an INI backend, but this class can be used
- * to create plugins that allow access to other file formats and
- * configuration systems.
- */
-class KCONFIGCORE_EXPORT KConfigBackend : public QObject, public QSharedData
-{
- Q_OBJECT
- Q_FLAGS(ParseOption)
- Q_FLAGS(WriteOption)
-
-public:
- /**
- * Creates a new KConfig backend.
- *
- * If no @p system is given, or the given @p system is unknown, this method tries
- * to determine the correct backend to use.
- *
- * @param fileName the absolute file name of the configuration file
- * @param system the configuration system to use
- * @return a KConfigBackend object to be used with KConfig
- */
- static QExplicitlySharedDataPointer<KConfigBackend> create(const QString& fileName = QString(),
- const QString& system = QString());
-
- /**
- * Registers mappings from directories/files to configuration systems
- *
- * Allows you to tell KConfigBackend that create() should use a particular
- * backend for a particular file or directory.
- *
- * @warning currently does nothing
- *
- * @param entryMap the KEntryMap to build the mappings from
- */
- static void registerMappings(const KEntryMap& entryMap);
-
- /** Destroys the backend */
- virtual ~KConfigBackend();
-
- /** Allows the behaviour of parseConfig() to be tuned */
- enum ParseOption {
- ParseGlobal = 1, /// entries should be marked as @em global
- ParseDefaults = 2, /// entries should be marked as @em default
- ParseExpansions = 4 /// entries are allowed to be marked as @em expandable
- };
- /// @typedef typedef QFlags<ParseOption> ParseOptions
- Q_DECLARE_FLAGS(ParseOptions, ParseOption)
-
- /** Allows the behaviour of writeConfig() to be tuned */
- enum WriteOption {
- WriteGlobal = 1 /// only write entries marked as "global"
- };
- /// @typedef typedef QFlags<WriteOption> WriteOptions
- Q_DECLARE_FLAGS(WriteOptions, WriteOption)
-
- /** Return value from parseConfig() */
- enum ParseInfo {
- ParseOk, /// the configuration was opened read/write
- ParseImmutable, /// the configuration is @em immutable
- ParseOpenError /// the configuration could not be opened
- };
-
- /**
- * Read persistent storage
- *
- * @param locale the locale to read entries for (if the backend supports localized entries)
- * @param pWriteBackMap the KEntryMap where the entries are placed
- * @param options @see ParseOptions
- * @return @see ParseInfo
- */
- virtual ParseInfo parseConfig(const QByteArray& locale,
- KEntryMap& pWriteBackMap,
- ParseOptions options = ParseOptions()) = 0;
-
- /**
- * Write the @em dirty entries to permanent storage
- *
- * @param locale the locale to write entries for (if the backend supports localized entries)
- * @param entryMap the KEntryMap containing the config object's entries.
- * @param options @see WriteOptions
- *
- * @return @c true if the write was successful, @c false if writing the configuration failed
- */
- virtual bool writeConfig(const QByteArray& locale, KEntryMap& entryMap,
- WriteOptions options) = 0;
-
- /**
- * If isWritable() returns false, writeConfig() will always fail.
- *
- * @return @c true if the configuration is writable, @c false if it is immutable
- */
- virtual bool isWritable() const = 0;
- /**
- * When isWritable() returns @c false, return an error message to
- * explain to the user why saving configuration will not work.
- *
- * The return value when isWritable() returns @c true is undefined.
- *
- * @returns a translated user-visible explanation for the configuration
- * object not being writable
- */
- virtual QString nonWritableErrorMessage() const = 0;
- /**
- * @return the read/write status of the configuration object
- *
- * @see KConfigBase::AccessMode
- */
- virtual KConfigBase::AccessMode accessMode() const = 0;
- /**
- * Create the enclosing object of the configuration object
- *
- * For example, if the configuration object is a file, this should create
- * the parent directory.
- */
- virtual void createEnclosing() = 0;
-
- /**
- * Set the file path.
- *
- * @note @p path @b MUST be @em absolute.
- *
- * @param path the absolute file path
- */
- virtual void setFilePath(const QString& path) = 0;
-
- /**
- * Lock the file
- */
- virtual bool lock() = 0;
- /**
- * Release the lock on the file
- */
- virtual void unlock() = 0;
- /**
- * @return @c true if the file is locked, @c false if it is not locked
- */
- virtual bool isLocked() const = 0;
-
- /**
- * @return the date and time when the object was last modified
- */
- QDateTime lastModified() const;
- /** @return the absolute path to the object */
- QString filePath() const;
- /** @return the size of the object */
- qint64 size() const;
-
-protected:
- KConfigBackend();
- void setLastModified(const QDateTime& dt);
- void setSize(qint64 sz);
- void setLocalFilePath(const QString& file);
-
-private:
- class Private;
- Private *const d;
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigBackend::ParseOptions)
-Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigBackend::WriteOptions)
-
-/**
- * Register a KConfig backend when it is contained in a loadable module
- */
-#define K_EXPORT_KCONFIGBACKEND(libname, classname) \
-K_PLUGIN_FACTORY(factory, registerPlugin<classname>();)
-
-
-#endif // KCONFIGBACKEND_H