kio Library API Documentation

global.h

00001 /* This file is part of the KDE libraries
00002    Copyright (C) 2000 David Faure <faure@kde.org>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License version 2 as published by the Free Software Foundation.
00007 
00008    This library is distributed in the hope that it will be useful,
00009    but WITHOUT ANY WARRANTY; without even the implied warranty of
00010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011    Library General Public License for more details.
00012 
00013    You should have received a copy of the GNU Library General Public License
00014    along with this library; see the file COPYING.LIB.  If not, write to
00015    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00016    Boston, MA 02111-1307, USA.
00017 */
00018 #ifndef __global_h__
00019 #define __global_h__ "$Id: global.h,v 1.54.2.1 2003/01/16 02:33:59 brade Exp $"
00020 
00021 #include <qstring.h>
00022 #include <qvaluelist.h>
00023 #include <qptrlist.h>
00024 #include <qdatastream.h>
00025 #include <qdatetime.h>
00026 #include <qmap.h>
00027 
00028 #include <kurl.h>
00029 
00034 namespace KIO
00035 {
00036   typedef signed long long int fileoffset_t;
00037   typedef unsigned long long int filesize_t;
00038 
00045   QString convertSize( KIO::filesize_t size );
00046 
00054   QString number( KIO::filesize_t size );
00055 
00062    QString convertSizeFromKB( KIO::filesize_t kbSize );
00063 
00072   QTime calculateRemaining( KIO::filesize_t totalSize, KIO::filesize_t processedSize, KIO::filesize_t speed );
00073 
00080   QString itemsSummaryString(uint items, uint files, uint dirs, KIO::filesize_t size, bool showSize);
00081 
00087   QString encodeFileName( const QString & str );
00092   QString decodeFileName( const QString & str );
00093 
00097   enum Error {
00098     ERR_CANNOT_OPEN_FOR_READING = 1,
00099     ERR_CANNOT_OPEN_FOR_WRITING = 2,
00100     ERR_CANNOT_LAUNCH_PROCESS = 3,
00101     ERR_INTERNAL = 4,
00102     ERR_MALFORMED_URL = 5,
00103     ERR_UNSUPPORTED_PROTOCOL = 6,
00104     ERR_NO_SOURCE_PROTOCOL = 7,
00105     ERR_UNSUPPORTED_ACTION = 8,
00106     ERR_IS_DIRECTORY = 9, // ... where a file was expected
00107     ERR_IS_FILE = 10, // ... where a directory was expected (e.g. listing)
00108     ERR_DOES_NOT_EXIST = 11,
00109     ERR_FILE_ALREADY_EXIST = 12,
00110     ERR_DIR_ALREADY_EXIST = 13,
00111     ERR_UNKNOWN_HOST = 14,
00112     ERR_ACCESS_DENIED = 15,
00113     ERR_WRITE_ACCESS_DENIED = 16,
00114     ERR_CANNOT_ENTER_DIRECTORY = 17,
00115     ERR_PROTOCOL_IS_NOT_A_FILESYSTEM = 18,
00116     ERR_CYCLIC_LINK = 19,
00117     ERR_USER_CANCELED = 20,
00118     ERR_CYCLIC_COPY = 21,
00119     ERR_COULD_NOT_CREATE_SOCKET = 22,
00120     ERR_COULD_NOT_CONNECT = 23,
00121     ERR_CONNECTION_BROKEN = 24,
00122     ERR_NOT_FILTER_PROTOCOL = 25,
00123     ERR_COULD_NOT_MOUNT = 26,
00124     ERR_COULD_NOT_UNMOUNT = 27,
00125     ERR_COULD_NOT_READ = 28,
00126     ERR_COULD_NOT_WRITE = 29,
00127     ERR_COULD_NOT_BIND = 30,
00128     ERR_COULD_NOT_LISTEN = 31,
00129     ERR_COULD_NOT_ACCEPT = 32,
00130     ERR_COULD_NOT_LOGIN = 33,
00131     ERR_COULD_NOT_STAT = 34,
00132     ERR_COULD_NOT_CLOSEDIR = 35,
00133     ERR_COULD_NOT_MKDIR = 37,
00134     ERR_COULD_NOT_RMDIR = 38,
00135     ERR_CANNOT_RESUME = 39,
00136     ERR_CANNOT_RENAME = 40,
00137     ERR_CANNOT_CHMOD = 41,
00138     ERR_CANNOT_DELETE = 42,
00139     // The text argument is the protocol that the dead slave supported.
00140     // This means for example: file, ftp, http, ...
00141     ERR_SLAVE_DIED = 43,
00142     ERR_OUT_OF_MEMORY = 44,
00143     ERR_UNKNOWN_PROXY_HOST = 45,
00144     ERR_COULD_NOT_AUTHENTICATE = 46,
00145     ERR_ABORTED = 47, // Action got aborted from application side
00146     // ERR_WARNING, // Errors terminate the job now. Use warning() instead.
00147     ERR_INTERNAL_SERVER = 48,
00148     ERR_SERVER_TIMEOUT = 49,
00149     ERR_SERVICE_NOT_AVAILABLE = 50,
00150     ERR_UNKNOWN = 51,
00151     // (was a warning) ERR_CHECKSUM_MISMATCH = 52,
00152     ERR_UNKNOWN_INTERRUPT = 53,
00153     ERR_CANNOT_DELETE_ORIGINAL = 54,
00154     ERR_CANNOT_DELETE_PARTIAL = 55,
00155     ERR_CANNOT_RENAME_ORIGINAL = 56,
00156     ERR_CANNOT_RENAME_PARTIAL = 57,
00157     ERR_NEED_PASSWD = 58,
00158     ERR_CANNOT_SYMLINK = 59,
00159     ERR_NO_CONTENT = 60, // Action succeeded but no content will follow.
00160     ERR_DISK_FULL = 61,
00161     ERR_IDENTICAL_FILES = 62, // src==dest when moving/copying
00162     ERR_SLAVE_DEFINED = 63, // for slave specified errors that can be
00163                             // rich text.  Email links will be handled
00164                             // by the standard email app and all hrefs
00165                             // will be handled by the standard browser.
00166                             // <a href="exec:/khelpcenter ?" will be
00167                             // forked.
00168     ERR_UPGRADE_REQUIRED = 64, // A transport upgrade is required to access this
00169                                // object.  For instance, TLS is demanded by
00170                                // the server in order to continue.
00171     ERR_POST_DENIED = 65    // Issued when trying to POST data to a certain Ports
00172                                // see job.cpp
00173   };
00174 
00175   /*
00176    * Returns a translated error message for @p errorCode using the
00177    * additional error information provided by @p errorText.
00178    */
00179   QString buildErrorString(int errorCode, const QString &errorText);
00180 
00181   /*
00182    * Returns a translated html error message for @p errorCode using the
00183    * additional error information provided by @p errorText , @p reqUrl
00184    * (the request URL), and the ioslave @p method .
00185    */
00186   QString buildHTMLErrorString(int errorCode, const QString &errorText,
00187                                 const KURL *reqUrl = 0L, int method = -1 );
00188 
00189   /*
00190    * Returns translated error details for @p errorCode using the
00191    * additional error information provided by @p errorText , @p reqUrl
00192    * (the request URL), and the ioslave @p method .
00193    *
00194    * Returns the following data:
00195    * QString errorName - the name of the error
00196    * QString techName - if not null, the more technical name of the error
00197    * QString description - a description of the error
00198    * QStringList causes - a list of possible causes of the error
00199    * QStringList solutions - a liso of solutions for the error
00200    */
00201   QByteArray rawErrorDetail(int errorCode, const QString &errorText,
00202                                 const KURL *reqUrl = 0L, int method = -1 );
00203 
00207   enum UDSAtomTypes {
00209     UDS_STRING = 1,
00210     UDS_LONG = 2,
00211     UDS_TIME = 4 | UDS_LONG,
00212 
00214     UDS_SIZE = 8 | UDS_LONG,
00215     UDS_SIZE_LARGE = 32768 | UDS_LONG, // For internal use only
00217     UDS_USER = 16 | UDS_STRING,
00219     UDS_GROUP = 32 | UDS_STRING,
00221     UDS_NAME = 64 | UDS_STRING,
00223     UDS_ACCESS = 128 | UDS_LONG,
00225     UDS_MODIFICATION_TIME = 256 | UDS_TIME,
00227     UDS_ACCESS_TIME = 512 | UDS_TIME,
00229     UDS_CREATION_TIME = 1024 | UDS_TIME,
00233     UDS_FILE_TYPE = 2048 | UDS_LONG,
00236     UDS_LINK_DEST = 4096 | UDS_STRING,
00238     UDS_URL = 8192 | UDS_STRING,
00240     UDS_MIME_TYPE = 16384 | UDS_STRING,
00243     UDS_GUESSED_MIME_TYPE = 16392 | UDS_STRING,
00246     UDS_XML_PROPERTIES = 32768 | UDS_STRING
00247   };
00248 
00249   enum CacheControl
00250   {
00251       CC_CacheOnly, 
00252       CC_Cache,     
00253       CC_Verify,    
00254       CC_Refresh,   
00255 
00256       CC_Reload     
00257   };
00258 
00259   KIO::CacheControl parseCacheControl(const QString &cacheControl);
00260 
00261   QString getCacheControlString(KIO::CacheControl cacheControl);
00262 
00268   QString findDeviceMountPoint( const QString& device );
00269 
00275   QString findPathMountPoint( const QString & filename );
00276 
00282   bool probably_slow_mounted(const QString& filename);
00283   
00290   bool manually_mounted(const QString& filename);
00291 
00292 
00293 /************
00294  *
00295  * Universal Directory Service
00296  *
00297  * Any file or URL can be represented by the UDSEntry type below
00298  * A UDSEntry is a list of atoms
00299  * Each atom contains a specific bit of information for the file
00300  *
00301  * The following UDS constants represent the different possible values
00302  * for m_uds in the UDS atom structure below
00303  *
00304  * Each atom contains a specific bit of information for the file
00305  */
00306 class UDSAtom
00307 {
00308 public:
00312   QString m_str;
00313   long long m_long;
00314 
00318   unsigned int m_uds;
00319 };
00320 
00324 typedef QValueList<UDSAtom> UDSEntry;
00325 typedef QValueList<UDSEntry> UDSEntryList;
00326 typedef QValueListIterator<UDSEntry> UDSEntryListIterator;
00327 typedef QValueListConstIterator<UDSEntry> UDSEntryListConstIterator;
00328 
00329 class MetaData : public QMap<QString, QString>
00330 {
00331 public:
00332    MetaData() : QMap<QString, QString>() { };
00333    MetaData(const QMap<QString, QString>&metaData) : 
00334      QMap<QString, QString>(metaData) { }; 
00335 
00336    MetaData & operator+= ( const QMap<QString,QString> &metaData )
00337    {
00338       QMap<QString,QString>::ConstIterator it;
00339       for( it = metaData.begin();
00340            it !=  metaData.end();
00341            ++it)
00342       {
00343          replace(it.key(), it.data());
00344       }
00345       return *this;
00346    }
00347 };
00348 
00349 };
00350 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.0.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Oct 8 12:21:27 2003 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2001