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 
00098   static bool isKnownProtocol( const QString& protocol );
00099 
00111   static QString exec( const QString& protocol );
00112 
00116   enum Type { T_STREAM, 
00117           T_FILESYSTEM, 
00118           T_NONE,   
00119           T_ERROR   
00120   };
00121 
00132   static Type inputType( const KURL &url );
00133 
00144   static Type outputType( const KURL &url );
00145 
00158   static QStringList listing( const KURL &url );
00159 
00164   struct ExtraField {
00165     ExtraField() {} // for QValueList
00166     ExtraField(const QString& _name, const QString& _type )
00167       : name(_name), type(_type) {
00168     }
00169     QString name;
00170     QString type;
00171   };
00172   typedef QValueList<ExtraField > ExtraFieldList;
00180   static ExtraFieldList extraFields( const KURL& url );
00181 
00195   static bool isSourceProtocol( const KURL &url );
00196 
00209   static bool isHelperProtocol( const KURL &url );
00210 
00215   static bool isHelperProtocol( const QString& protocol );
00216 
00233   static bool isFilterProtocol( const KURL &url );
00234 
00239   static bool isFilterProtocol( const QString& protocol );
00240 
00256   static bool supportsListing( const KURL &url );
00257 
00267   static bool supportsReading( const KURL &url );
00268 
00278   static bool supportsWriting( const KURL &url );
00279 
00289   static bool supportsMakeDir( const KURL &url );
00290 
00300   static bool supportsDeleting( const KURL &url );
00301 
00311   static bool supportsLinking( const KURL &url );
00312 
00323   static bool supportsMoving( const KURL &url );
00324 
00337   static bool canCopyFromFile( const KURL &url );
00338 
00351   static bool canCopyToFile( const KURL &url );
00352 
00361   static QString defaultMimetype( const KURL& url );
00362 
00371   static QString icon( const QString& protocol );
00372 
00384   static QString config( const QString& protocol );
00385 
00398   static int maxSlaves( const QString& protocol );
00399 
00411   static bool determineMimetypeFromExtension( const QString &protocol );
00412 
00422   static QString docPath( const QString& protocol );
00423 
00440   static QString protocolClass( const QString& protocol );
00441 
00453   static bool showFilePreview( const QString& protocol );
00454 
00470   static KURL::URIMode uriParseMode( const QString& protocol );
00471 
00490   static QStringList capabilities( const QString& protocol );
00491 
00503   static QString proxiedBy( const QString& protocol );
00504 
00505 public:
00506   // Internal functions:
00510   KProtocolInfo( QDataStream& _str, int offset);
00511 
00512   virtual ~KProtocolInfo();
00513 
00518   virtual void load(QDataStream& );
00519 
00524   virtual void save(QDataStream& );
00525 
00527   // The following methods are deprecated:
00528 
00530   static Type inputType( const QString& protocol ) KDE_DEPRECATED;
00532   static Type outputType( const QString& protocol ) KDE_DEPRECATED;
00539   static QStringList listing( const QString& protocol ) KDE_DEPRECATED;
00541   static bool isSourceProtocol( const QString& protocol ) KDE_DEPRECATED;
00543   static bool supportsListing( const QString& protocol ) KDE_DEPRECATED;
00545   static bool supportsReading( const QString& protocol ) KDE_DEPRECATED;
00547   static bool supportsWriting( const QString& protocol ) KDE_DEPRECATED;
00549   static bool supportsMakeDir( const QString& protocol ) KDE_DEPRECATED;
00551   static bool supportsDeleting( const QString& protocol ) KDE_DEPRECATED;
00553   static bool supportsLinking( const QString& protocol ) KDE_DEPRECATED;
00555   static bool supportsMoving( const QString& protocol ) KDE_DEPRECATED;
00557   static bool canCopyFromFile( const QString& protocol ) KDE_DEPRECATED;
00559   static bool canCopyToFile( const QString& protocol ) KDE_DEPRECATED;
00561   static QString defaultMimetype( const QString& protocol) KDE_DEPRECATED;
00563 
00564 protected:
00565   QString m_name;
00566   QString m_exec;
00567   Type m_inputType;
00568   Type m_outputType;
00569   QStringList m_listing;
00570   bool m_isSourceProtocol;
00571   bool m_isHelperProtocol;
00572   bool m_supportsListing;
00573   bool m_supportsReading;
00574   bool m_supportsWriting;
00575   bool m_supportsMakeDir;
00576   bool m_supportsDeleting;
00577   bool m_supportsLinking;
00578   bool m_supportsMoving;
00579   QString m_defaultMimetype;
00580   bool m_determineMimetypeFromExtension;
00581   QString m_icon;
00582   bool m_canCopyFromFile;
00583   bool m_canCopyToFile;
00584   QString m_config;
00585   int m_maxSlaves;
00586 protected:
00587   virtual void virtual_hook( int id, void* data );
00588 private:
00589   class KProtocolInfoPrivate;
00590   KProtocolInfoPrivate* d;
00591 };
00592 
00593 QDataStream& operator>>( QDataStream& s, KProtocolInfo::ExtraField& field );
00594 QDataStream& operator<<( QDataStream& s, const KProtocolInfo::ExtraField& field );
00595 
00596 #endif
KDE Logo
This file is part of the documentation for kio Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Jul 22 10:17:18 2005 by doxygen 1.3.6 written by Dimitri van Heesch, © 1997-2003