From ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kdecore/kprotocolinfofactory.h | 91 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 kdecore/kprotocolinfofactory.h (limited to 'kdecore/kprotocolinfofactory.h') diff --git a/kdecore/kprotocolinfofactory.h b/kdecore/kprotocolinfofactory.h new file mode 100644 index 000000000..822f5b455 --- /dev/null +++ b/kdecore/kprotocolinfofactory.h @@ -0,0 +1,91 @@ +/* This file is part of the KDE libraries + Copyright (C) 1999 Torben Weis + Copyright (C) 2000,2003 Waldo Bastian + + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + 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 __kprotocolinfofactory_h__ +#define __kprotocolinfofactory_h__ + +#include "../kio/kio/kprotocolinfo.h" + +#include +#include +#include +#include +#include + +class KProtocolInfoPrivate; + +/** + * KProtocolInfoFactory is a factory for getting + * KProtocolInfo. The factory is a singleton + * (only one instance can exist). + * + * @short Factory for KProtocolInfo + */ +class KDECORE_EXPORT KProtocolInfoFactory : public KSycocaFactory +{ + K_SYCOCAFACTORY( KST_KProtocolInfoFactory ) +public: + /** + * The instance of the KProtocolInfoFactory. + * @return the factory instance + */ + static KProtocolInfoFactory* self() + { if ( !_self) new KProtocolInfoFactory(); return _self; } + /** \internal */ + KProtocolInfoFactory(); + virtual ~KProtocolInfoFactory(); + + /* + * Returns protocol info for @p protocol. + * + * Does not take proxy settings into account. + * @param protocol the protocol to search for + * @return the pointer to the KProtocolInfo, or 0 if not found + */ + KProtocolInfo *findProtocol(const QString &protocol); + + /** + * Returns list of all known protocols. + * @return a list of all protocols + */ + QStringList protocols(); +protected: + + /** + * @internal Not used. + */ + virtual KSycocaEntry *createEntry(const QString &, const char *) + { return 0; } + + /** + * @internal + */ + virtual KProtocolInfo *createEntry(int offset); + +protected: + static KProtocolInfoFactory *_self; + + QMap m_cache; +protected: + virtual void virtual_hook( int id, void* data ); +private: + class KProtocolInfoFactoryPrivate* d; +}; + +#endif -- cgit v1.2.1