00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __tdeio_global_h__
00019 #define __tdeio_global_h__
00020
00021 #include <tqstring.h>
00022 #include <tqvaluelist.h>
00023 #include <tqptrlist.h>
00024 #include <tqdatastream.h>
00025 #include <tqdatetime.h>
00026 #include <tqmap.h>
00027
00028 #include <kurl.h>
00029
00034 namespace TDEIO
00035 {
00037 typedef TQ_LLONG fileoffset_t;
00039 typedef TQ_ULLONG filesize_t;
00040
00047 TDEIO_EXPORT TQString convertSize( TDEIO::filesize_t size );
00048
00056 TDEIO_EXPORT TQString convertSizeWithBytes( TDEIO::filesize_t size );
00064 TDEIO_EXPORT TQString number( TDEIO::filesize_t size );
00065
00072 TDEIO_EXPORT TQString convertSizeFromKB( TDEIO::filesize_t kbSize );
00073
00084 TDEIO_EXPORT unsigned int calculateRemainingSeconds( TDEIO::filesize_t totalSize,
00085 TDEIO::filesize_t processedSize, TDEIO::filesize_t speed );
00086
00095 TDEIO_EXPORT TQString convertSeconds( unsigned int seconds );
00096
00106 TDEIO_EXPORT TQTime calculateRemaining( TDEIO::filesize_t totalSize, TDEIO::filesize_t processedSize, TDEIO::filesize_t speed ) KDE_DEPRECATED;
00107
00117 TDEIO_EXPORT TQString itemsSummaryString(uint items, uint files, uint dirs, TDEIO::filesize_t size, bool showSize);
00118
00126 TDEIO_EXPORT TQString encodeFileName( const TQString & str );
00133 TDEIO_EXPORT TQString decodeFileName( const TQString & str );
00134
00138 enum Command {
00139 CMD_HOST = '0',
00140 CMD_CONNECT = '1',
00141 CMD_DISCONNECT = '2',
00142 CMD_SLAVE_STATUS = '3',
00143 CMD_SLAVE_CONNECT = '4',
00144 CMD_SLAVE_HOLD = '5',
00145 CMD_NONE = 'A',
00146 CMD_TESTDIR = 'B',
00147 CMD_GET = 'C',
00148 CMD_PUT = 'D',
00149 CMD_STAT = 'E',
00150 CMD_MIMETYPE = 'F',
00151 CMD_LISTDIR = 'G',
00152 CMD_MKDIR = 'H',
00153 CMD_RENAME = 'I',
00154 CMD_COPY = 'J',
00155 CMD_DEL = 'K',
00156 CMD_CHMOD = 'L',
00157 CMD_SPECIAL = 'M',
00158 CMD_USERPASS = 'N',
00159 CMD_REPARSECONFIGURATION = 'O',
00160 CMD_META_DATA = 'P',
00161 CMD_SYMLINK = 'Q',
00162 CMD_SUBURL = 'R',
00163 CMD_MESSAGEBOXANSWER = 'S',
00164 CMD_RESUMEANSWER = 'T',
00165 CMD_CONFIG = 'U',
00166 CMD_MULTI_GET = 'V',
00167 CMD_LOCALURL = 'W'
00168
00169
00170 };
00171
00175 enum Error {
00176 ERR_CANNOT_OPEN_FOR_READING = 1,
00177 ERR_CANNOT_OPEN_FOR_WRITING = 2,
00178 ERR_CANNOT_LAUNCH_PROCESS = 3,
00179 ERR_INTERNAL = 4,
00180 ERR_MALFORMED_URL = 5,
00181 ERR_UNSUPPORTED_PROTOCOL = 6,
00182 ERR_NO_SOURCE_PROTOCOL = 7,
00183 ERR_UNSUPPORTED_ACTION = 8,
00184 ERR_IS_DIRECTORY = 9,
00185 ERR_IS_FILE = 10,
00186 ERR_DOES_NOT_EXIST = 11,
00187 ERR_FILE_ALREADY_EXIST = 12,
00188 ERR_DIR_ALREADY_EXIST = 13,
00189 ERR_UNKNOWN_HOST = 14,
00190 ERR_ACCESS_DENIED = 15,
00191 ERR_WRITE_ACCESS_DENIED = 16,
00192 ERR_CANNOT_ENTER_DIRECTORY = 17,
00193 ERR_PROTOCOL_IS_NOT_A_FILESYSTEM = 18,
00194 ERR_CYCLIC_LINK = 19,
00195 ERR_USER_CANCELED = 20,
00196 ERR_CYCLIC_COPY = 21,
00197 ERR_COULD_NOT_CREATE_SOCKET = 22,
00198 ERR_COULD_NOT_CONNECT = 23,
00199 ERR_CONNECTION_BROKEN = 24,
00200 ERR_NOT_FILTER_PROTOCOL = 25,
00201 ERR_COULD_NOT_MOUNT = 26,
00202 ERR_COULD_NOT_UNMOUNT = 27,
00203 ERR_COULD_NOT_READ = 28,
00204 ERR_COULD_NOT_WRITE = 29,
00205 ERR_COULD_NOT_BIND = 30,
00206 ERR_COULD_NOT_LISTEN = 31,
00207 ERR_COULD_NOT_ACCEPT = 32,
00208 ERR_COULD_NOT_LOGIN = 33,
00209 ERR_COULD_NOT_STAT = 34,
00210 ERR_COULD_NOT_CLOSEDIR = 35,
00211 ERR_COULD_NOT_MKDIR = 37,
00212 ERR_COULD_NOT_RMDIR = 38,
00213 ERR_CANNOT_RESUME = 39,
00214 ERR_CANNOT_RENAME = 40,
00215 ERR_CANNOT_CHMOD = 41,
00216 ERR_CANNOT_DELETE = 42,
00217
00218
00219 ERR_SLAVE_DIED = 43,
00220 ERR_OUT_OF_MEMORY = 44,
00221 ERR_UNKNOWN_PROXY_HOST = 45,
00222 ERR_COULD_NOT_AUTHENTICATE = 46,
00223 ERR_ABORTED = 47,
00224 ERR_INTERNAL_SERVER = 48,
00225 ERR_SERVER_TIMEOUT = 49,
00226 ERR_SERVICE_NOT_AVAILABLE = 50,
00227 ERR_UNKNOWN = 51,
00228
00229 ERR_UNKNOWN_INTERRUPT = 53,
00230 ERR_CANNOT_DELETE_ORIGINAL = 54,
00231 ERR_CANNOT_DELETE_PARTIAL = 55,
00232 ERR_CANNOT_RENAME_ORIGINAL = 56,
00233 ERR_CANNOT_RENAME_PARTIAL = 57,
00234 ERR_NEED_PASSWD = 58,
00235 ERR_CANNOT_SYMLINK = 59,
00236 ERR_NO_CONTENT = 60,
00237 ERR_DISK_FULL = 61,
00238 ERR_IDENTICAL_FILES = 62,
00239 ERR_SLAVE_DEFINED = 63,
00240
00241
00242
00243
00244
00245 ERR_UPGRADE_REQUIRED = 64,
00246
00247
00248 ERR_POST_DENIED = 65,
00249
00250 ERR_OFFLINE_MODE = 66
00251
00252 };
00253
00261 TDEIO_EXPORT TQString buildErrorString(int errorCode, const TQString &errorText);
00262
00273 TDEIO_EXPORT TQString buildHTMLErrorString(int errorCode, const TQString &errorText,
00274 const KURL *reqUrl = 0L, int method = -1 );
00275
00292 TDEIO_EXPORT TQByteArray rawErrorDetail(int errorCode, const TQString &errorText,
00293 const KURL *reqUrl = 0L, int method = -1 );
00294
00303 TDEIO_EXPORT TQString unsupportedActionErrorString(const TQString &protocol, int cmd);
00304
00308 enum UDSAtomTypes {
00310 UDS_STRING = 1,
00311 UDS_LONG = 2,
00312 UDS_TIME = 4 | UDS_LONG,
00313
00314
00315
00316
00317
00319 UDS_SIZE = 8 | UDS_LONG,
00320 UDS_SIZE_LARGE = 32768 | UDS_LONG,
00322 UDS_USER = 16 | UDS_STRING,
00326 UDS_ICON_NAME = 24 | UDS_STRING,
00328 UDS_GROUP = 32 | UDS_STRING,
00332 UDS_EXTRA = 48 | UDS_STRING,
00335 UDS_NAME = 64 | UDS_STRING,
00338 UDS_LOCAL_PATH = 72 | UDS_STRING,
00341 UDS_HIDDEN = 80 | UDS_LONG,
00344 UDS_EXTENDED_ACL = 88 | UDS_LONG,
00347 UDS_ACL_STRING = 96 | UDS_STRING,
00351 UDS_DEFAULT_ACL_STRING = 104 | UDS_STRING,
00352
00353
00354
00356 UDS_ACCESS = 128 | UDS_LONG,
00358 UDS_MODIFICATION_TIME = 256 | UDS_TIME,
00360 UDS_ACCESS_TIME = 512 | UDS_TIME,
00362 UDS_CREATION_TIME = 1024 | UDS_TIME,
00366 UDS_FILE_TYPE = 2048 | UDS_LONG,
00369 UDS_LINK_DEST = 4096 | UDS_STRING,
00371 UDS_URL = 8192 | UDS_STRING,
00373 UDS_MIME_TYPE = 16384 | UDS_STRING,
00376 UDS_GUESSED_MIME_TYPE = 16392 | UDS_STRING,
00379 UDS_XML_PROPERTIES = 0x8000 | UDS_STRING
00380 };
00381
00387 enum CacheControl
00388 {
00389 CC_CacheOnly,
00390 CC_Cache,
00391 CC_Verify,
00392 CC_Refresh,
00393
00394 CC_Reload
00395 };
00396
00404 TDEIO_EXPORT TDEIO::CacheControl parseCacheControl(const TQString &cacheControl);
00405
00413 TDEIO_EXPORT TQString getCacheControlString(TDEIO::CacheControl cacheControl);
00414
00420 TDEIO_EXPORT TQString findDeviceMountPoint( const TQString& device );
00421
00429 TDEIO_EXPORT TQString findPathMountPoint( const TQString & filename );
00430
00438 TDEIO_EXPORT bool probably_slow_mounted(const TQString& filename);
00439
00446 TDEIO_EXPORT bool manually_mounted(const TQString& filename);
00447
00448 enum FileSystemFlag { SupportsChmod, SupportsChown, SupportsUTime,
00449 SupportsSymlinks, CaseInsensitive };
00470 TDEIO_EXPORT bool testFileSystemFlag(const TQString& filename, FileSystemFlag flag);
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486 class TDEIO_EXPORT UDSAtom
00487 {
00488 public:
00492 TQString m_str;
00496 long long m_long;
00497
00501 unsigned int m_uds;
00502 };
00503
00507 typedef TQValueList<UDSAtom> UDSEntry;
00508 typedef TQValueList<UDSEntry> UDSEntryList;
00509 typedef TQValueListIterator<UDSEntry> UDSEntryListIterator;
00510 typedef TQValueListConstIterator<UDSEntry> UDSEntryListConstIterator;
00511
00515 class TDEIO_EXPORT MetaData : public TQMap<TQString, TQString>
00516 {
00517 public:
00521 MetaData() : TQMap<TQString, TQString>() { };
00525 MetaData(const TQMap<TQString, TQString>&metaData) :
00526 TQMap<TQString, TQString>(metaData) { };
00527
00533 MetaData & operator+= ( const TQMap<TQString,TQString> &metaData )
00534 {
00535 TQMap<TQString,TQString>::ConstIterator it;
00536 for( it = metaData.begin();
00537 it != metaData.end();
00538 ++it)
00539 {
00540 replace(it.key(), it.data());
00541 }
00542 return *this;
00543 }
00544 };
00545
00546 }
00547 #endif