kio Library API Documentation

kprotocolinfo.h

00001 /* This file is part of the KDE libraries
00002    Copyright (C) 1999 Torben Weis <weis@kde.org>
00003    Copyright (C) 2000-2001 Waldo Bastian <bastian@kde.org>
00004 
00005    This library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Library General Public
00007    License version 2 as published by the Free Software Foundation.
00008 
00009    This library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Library General Public License for more details.
00013 
00014    You should have received a copy of the GNU Library General Public License
00015    along with this library; see the file COPYING.LIB.  If not, write to
00016    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00017    Boston, MA 02111-1307, USA.
00018 */
00019 #ifndef __kprotocolinfo_h__
00020 #define __kprotocolinfo_h__
00021 
00022 #include <qstring.h>
00023 #include <qstringlist.h>
00024 #include <kurl.h>
00025 #include <ksycocaentry.h>
00026 #include <ksycocatype.h>
00027 #include <kdemacros.h>
00028 #include <qdatastream.h>
00029 
00044 class KProtocolInfo : public KSycocaEntry
00045 {
00046   friend class KProtocolInfoFactory;
00047   K_SYCOCATYPE( KST_KProtocolInfo, KSycocaEntry )
00048 
00049 public:
00050   typedef KSharedPtr<KProtocolInfo> Ptr;
00051 
00052 public:
00057   KProtocolInfo( const QString & path);
00058 
00063   virtual bool isValid() const { return !m_name.isEmpty(); }
00064 
00073   virtual QString name() const { return m_name; }
00074 
00075   //
00076   // Static functions:
00077   //
00078 
00083   static QStringList protocols();
00084 
00092   static bool isKnownProtocol( const KURL &url );
00093 
00105   static QString exec( const QString& protocol );
00106 
00110   enum Type { T_STREAM, 
00111           T_FILESYSTEM, 
00112           T_NONE,   
00113           T_ERROR   
00114   };
00115 
00126   static Type inputType( const KURL &url );
00127 
00138   static Type outputType( const KURL &url );
00139 
00152   static QStringList listing( const KURL &url );
00153 
00158   struct ExtraField {
00159     ExtraField() {} // for QValueList
00160     ExtraField(const QString& _name, const QString& _type )
00161       : name(_name), type(_type) {
00162     }
00163     QString name;
00164     QString type;
00165   };
00166   typedef QValueList<ExtraField > ExtraFieldList;
00174   static ExtraFieldList extraFields( const KURL& url );
00175 
00189   static bool isSourceProtocol( const KURL &url );
00190 
00203   static bool isHelperProtocol( const KURL &url );
00204 
00221   static bool isFilterProtocol( const KURL &url );
00222 
00238   static bool supportsListing( const KURL &url );
00239 
00249   static bool supportsReading( const KURL &url );
00250 
00260   static bool supportsWriting( const KURL &url );
00261 
00271   static bool supportsMakeDir( const KURL &url );
00272 
00282   static bool supportsDeleting( const KURL &url );
00283 
00293   static bool supportsLinking( const KURL &url );
00294 
00305   static bool supportsMoving( const KURL &url );
00306 
00319   static bool canCopyFromFile( const KURL &url );
00320 
00333   static bool canCopyToFile( const KURL &url );
00334 
00343   static QString defaultMimetype( const KURL& url );
00344 
00353   static QString icon( const QString& protocol );
00354 
00366   static QString config( const QString& protocol );
00367 
00380   static int maxSlaves( const QString& protocol );
00381 
00393   static bool determineMimetypeFromExtension( const QString &protocol );
00394 
00404   static QString docPath( const QString& protocol );
00405 
00422   static QString protocolClass( const QString& protocol );
00423 
00435   static bool showFilePreview( const QString& protocol );
00436 
00452   static KURL::URIMode uriParseMode( const QString& protocol );
00453 
00454 public:
00455   // Internal functions:
00459   KProtocolInfo( QDataStream& _str, int offset);
00460 
00461   virtual ~KProtocolInfo();
00462 
00467   virtual void load(QDataStream& );
00468 
00473   virtual void save(QDataStream& );
00474 
00476   // The following methods are deprecated:
00477 
00479   static Type inputType( const QString& protocol ) KDE_DEPRECATED;
00481   static Type outputType( const QString& protocol ) KDE_DEPRECATED;
00488   static QStringList listing( const QString& protocol ) KDE_DEPRECATED;
00490   static bool isSourceProtocol( const QString& protocol ) KDE_DEPRECATED;
00492   static bool isHelperProtocol( const QString& protocol ) KDE_DEPRECATED;
00494   static bool isFilterProtocol( const QString& protocol ) KDE_DEPRECATED;
00496   static bool isKnownProtocol( const QString& protocol ) KDE_DEPRECATED;
00498   static bool supportsListing( const QString& protocol ) KDE_DEPRECATED;
00500   static bool supportsReading( const QString& protocol ) KDE_DEPRECATED;
00502   static bool supportsWriting( const QString& protocol ) KDE_DEPRECATED;
00504   static bool supportsMakeDir( const QString& protocol ) KDE_DEPRECATED;
00506   static bool supportsDeleting( const QString& protocol ) KDE_DEPRECATED;
00508   static bool supportsLinking( const QString& protocol ) KDE_DEPRECATED;
00510   static bool supportsMoving( const QString& protocol ) KDE_DEPRECATED;
00512   static bool canCopyFromFile( const QString& protocol ) KDE_DEPRECATED;
00514   static bool canCopyToFile( const QString& protocol ) KDE_DEPRECATED;
00516   static QString defaultMimetype( const QString& protocol) KDE_DEPRECATED;
00518 
00519 protected:
00520   QString m_name;
00521   QString m_exec;
00522   Type m_inputType;
00523   Type m_outputType;
00524   QStringList m_listing;
00525   bool m_isSourceProtocol;
00526   bool m_isHelperProtocol;
00527   bool m_supportsListing;
00528   bool m_supportsReading;
00529   bool m_supportsWriting;
00530   bool m_supportsMakeDir;
00531   bool m_supportsDeleting;
00532   bool m_supportsLinking;
00533   bool m_supportsMoving;
00534   QString m_defaultMimetype;
00535   bool m_determineMimetypeFromExtension;
00536   QString m_icon;
00537   bool m_canCopyFromFile;
00538   bool m_canCopyToFile;
00539   QString m_config;
00540   int m_maxSlaves;
00541 protected:
00542   virtual void virtual_hook( int id, void* data );
00543 private:
00544   class KProtocolInfoPrivate;
00545   KProtocolInfoPrivate* d;
00546 };
00547 
00548 QDataStream& operator>>( QDataStream& s, KProtocolInfo::ExtraField& field );
00549 QDataStream& operator<<( QDataStream& s, const KProtocolInfo::ExtraField& field );
00550 
00551 #endif
KDE Logo
This file is part of the documentation for kio Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 22 14:24:11 2004 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2003