00001
00002
00003 #ifndef _LIBGNOMEVFSMM_ENUMS_H
00004 #define _LIBGNOMEVFSMM_ENUMS_H
00005
00006 #include <glibmm.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <libgnomevfs/gnome-vfs-file-info.h>
00029 #include <libgnomevfs/gnome-vfs-result.h>
00030 #include <libgnomevfs/gnome-vfs-mime-handlers.h>
00031
00032
00033 namespace Gnome
00034 {
00035
00036 namespace Vfs
00037 {
00038
00039
00053 enum FileInfoOptions
00054 {
00055 FILE_INFO_DEFAULT = 0,
00056 FILE_INFO_GET_MIME_TYPE = 1 << 0,
00057 FILE_INFO_FORCE_FAST_MIME_TYPE = 1 << 1,
00058 FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 << 2,
00059 FILE_INFO_FOLLOW_LINKS = 1 << 3,
00060 FILE_INFO_GET_ACCESS_RIGHTS = 1 << 4
00061 };
00062
00064 inline FileInfoOptions operator|(FileInfoOptions lhs, FileInfoOptions rhs)
00065 { return static_cast<FileInfoOptions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00066
00068 inline FileInfoOptions operator&(FileInfoOptions lhs, FileInfoOptions rhs)
00069 { return static_cast<FileInfoOptions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00070
00072 inline FileInfoOptions operator^(FileInfoOptions lhs, FileInfoOptions rhs)
00073 { return static_cast<FileInfoOptions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00074
00076 inline FileInfoOptions operator~(FileInfoOptions flags)
00077 { return static_cast<FileInfoOptions>(~static_cast<unsigned>(flags)); }
00078
00080 inline FileInfoOptions& operator|=(FileInfoOptions& lhs, FileInfoOptions rhs)
00081 { return (lhs = static_cast<FileInfoOptions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00082
00084 inline FileInfoOptions& operator&=(FileInfoOptions& lhs, FileInfoOptions rhs)
00085 { return (lhs = static_cast<FileInfoOptions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00086
00088 inline FileInfoOptions& operator^=(FileInfoOptions& lhs, FileInfoOptions rhs)
00089 { return (lhs = static_cast<FileInfoOptions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00090
00091
00095 enum Result
00096 {
00097 OK,
00098 ERROR_NOT_FOUND,
00099 ERROR_GENERIC,
00100 ERROR_INTERNAL,
00101 ERROR_BAD_PARAMETERS,
00102 ERROR_NOT_SUPPORTED,
00103 ERROR_IO,
00104 ERROR_CORRUPTED_DATA,
00105 ERROR_WRONG_FORMAT,
00106 ERROR_BAD_FILE,
00107 ERROR_TOO_BIG,
00108 ERROR_NO_SPACE,
00109 ERROR_READ_ONLY,
00110 ERROR_INVALID_URI,
00111 ERROR_NOT_OPEN,
00112 ERROR_INVALID_OPEN_MODE,
00113 ERROR_ACCESS_DENIED,
00114 ERROR_TOO_MANY_OPEN_FILES,
00115 ERROR_EOF,
00116 ERROR_NOT_A_DIRECTORY,
00117 ERROR_IN_PROGRESS,
00118 ERROR_INTERRUPTED,
00119 ERROR_FILE_EXISTS,
00120 ERROR_LOOP,
00121 ERROR_NOT_PERMITTED,
00122 ERROR_IS_DIRECTORY,
00123 ERROR_NO_MEMORY,
00124 ERROR_HOST_NOT_FOUND,
00125 ERROR_INVALID_HOST_NAME,
00126 ERROR_HOST_HAS_NO_ADDRESS,
00127 ERROR_LOGIN_FAILED,
00128 ERROR_CANCELLED,
00129 ERROR_DIRECTORY_BUSY,
00130 ERROR_DIRECTORY_NOT_EMPTY,
00131 ERROR_TOO_MANY_LINKS,
00132 ERROR_READ_ONLY_FILE_SYSTEM,
00133 ERROR_NOT_SAME_FILE_SYSTEM,
00134 ERROR_NAME_TOO_LONG,
00135 ERROR_SERVICE_NOT_AVAILABLE,
00136 ERROR_SERVICE_OBSOLETE,
00137 ERROR_PROTOCOL_ERROR,
00138 ERROR_NO_MASTER_BROWSER,
00139 NUM_ERRORS
00140 };
00141
00142
00154 enum URIHideOptions
00155 {
00156 URI_HIDE_NONE = 0,
00157 URI_HIDE_USER_NAME = 1 << 0,
00158 URI_HIDE_PASSWORD = 1 << 1,
00159 URI_HIDE_HOST_NAME = 1 << 2,
00160 URI_HIDE_HOST_PORT = 1 << 3,
00161 URI_HIDE_TOPLEVEL_METHOD = 1 << 4,
00162 URI_HIDE_FRAGMENT_IDENTIFIER = 1 << 8
00163 };
00164
00166 inline URIHideOptions operator|(URIHideOptions lhs, URIHideOptions rhs)
00167 { return static_cast<URIHideOptions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00168
00170 inline URIHideOptions operator&(URIHideOptions lhs, URIHideOptions rhs)
00171 { return static_cast<URIHideOptions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00172
00174 inline URIHideOptions operator^(URIHideOptions lhs, URIHideOptions rhs)
00175 { return static_cast<URIHideOptions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00176
00178 inline URIHideOptions operator~(URIHideOptions flags)
00179 { return static_cast<URIHideOptions>(~static_cast<unsigned>(flags)); }
00180
00182 inline URIHideOptions& operator|=(URIHideOptions& lhs, URIHideOptions rhs)
00183 { return (lhs = static_cast<URIHideOptions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00184
00186 inline URIHideOptions& operator&=(URIHideOptions& lhs, URIHideOptions rhs)
00187 { return (lhs = static_cast<URIHideOptions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00188
00190 inline URIHideOptions& operator^=(URIHideOptions& lhs, URIHideOptions rhs)
00191 { return (lhs = static_cast<URIHideOptions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00192
00193
00205 enum DirectoryVisitOptions
00206 {
00207 DIRECTORY_VISIT_DEFAULT = 0,
00208 DIRECTORY_VISIT_SAMEFS = 1 << 0,
00209 DIRECTORY_VISIT_LOOPCHECK = 1 << 1
00210 };
00211
00213 inline DirectoryVisitOptions operator|(DirectoryVisitOptions lhs, DirectoryVisitOptions rhs)
00214 { return static_cast<DirectoryVisitOptions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00215
00217 inline DirectoryVisitOptions operator&(DirectoryVisitOptions lhs, DirectoryVisitOptions rhs)
00218 { return static_cast<DirectoryVisitOptions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00219
00221 inline DirectoryVisitOptions operator^(DirectoryVisitOptions lhs, DirectoryVisitOptions rhs)
00222 { return static_cast<DirectoryVisitOptions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00223
00225 inline DirectoryVisitOptions operator~(DirectoryVisitOptions flags)
00226 { return static_cast<DirectoryVisitOptions>(~static_cast<unsigned>(flags)); }
00227
00229 inline DirectoryVisitOptions& operator|=(DirectoryVisitOptions& lhs, DirectoryVisitOptions rhs)
00230 { return (lhs = static_cast<DirectoryVisitOptions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00231
00233 inline DirectoryVisitOptions& operator&=(DirectoryVisitOptions& lhs, DirectoryVisitOptions rhs)
00234 { return (lhs = static_cast<DirectoryVisitOptions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00235
00237 inline DirectoryVisitOptions& operator^=(DirectoryVisitOptions& lhs, DirectoryVisitOptions rhs)
00238 { return (lhs = static_cast<DirectoryVisitOptions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00239
00240
00252 enum OpenMode
00253 {
00254 OPEN_NONE = 0,
00255 OPEN_READ = 1 << 0,
00256 OPEN_WRITE = 1 << 1,
00257 OPEN_RANDOM = 1 << 2
00258 };
00259
00261 inline OpenMode operator|(OpenMode lhs, OpenMode rhs)
00262 { return static_cast<OpenMode>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00263
00265 inline OpenMode operator&(OpenMode lhs, OpenMode rhs)
00266 { return static_cast<OpenMode>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00267
00269 inline OpenMode operator^(OpenMode lhs, OpenMode rhs)
00270 { return static_cast<OpenMode>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00271
00273 inline OpenMode operator~(OpenMode flags)
00274 { return static_cast<OpenMode>(~static_cast<unsigned>(flags)); }
00275
00277 inline OpenMode& operator|=(OpenMode& lhs, OpenMode rhs)
00278 { return (lhs = static_cast<OpenMode>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00279
00281 inline OpenMode& operator&=(OpenMode& lhs, OpenMode rhs)
00282 { return (lhs = static_cast<OpenMode>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00283
00285 inline OpenMode& operator^=(OpenMode& lhs, OpenMode rhs)
00286 { return (lhs = static_cast<OpenMode>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00287
00288
00292 enum SeekPosition
00293 {
00294 SEEK_POS_START,
00295 SEEK_POS_CURRENT,
00296 SEEK_POS_END
00297 };
00298
00299
00311 enum FileFlags
00312 {
00313 FILE_FLAGS_NONE = 0,
00314 FILE_FLAGS_SYMLINK = 1 << 0,
00315 FILE_FLAGS_LOCAL = 1 << 1
00316 };
00317
00319 inline FileFlags operator|(FileFlags lhs, FileFlags rhs)
00320 { return static_cast<FileFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00321
00323 inline FileFlags operator&(FileFlags lhs, FileFlags rhs)
00324 { return static_cast<FileFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00325
00327 inline FileFlags operator^(FileFlags lhs, FileFlags rhs)
00328 { return static_cast<FileFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00329
00331 inline FileFlags operator~(FileFlags flags)
00332 { return static_cast<FileFlags>(~static_cast<unsigned>(flags)); }
00333
00335 inline FileFlags& operator|=(FileFlags& lhs, FileFlags rhs)
00336 { return (lhs = static_cast<FileFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00337
00339 inline FileFlags& operator&=(FileFlags& lhs, FileFlags rhs)
00340 { return (lhs = static_cast<FileFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00341
00343 inline FileFlags& operator^=(FileFlags& lhs, FileFlags rhs)
00344 { return (lhs = static_cast<FileFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00345
00346
00350 enum FileType
00351 {
00352 FILE_TYPE_UNKNOWN,
00353 FILE_TYPE_REGULAR,
00354 FILE_TYPE_DIRECTORY,
00355 FILE_TYPE_FIFO,
00356 FILE_TYPE_SOCKET,
00357 FILE_TYPE_CHARACTER_DEVICE,
00358 FILE_TYPE_BLOCK_DEVICE,
00359 FILE_TYPE_SYMBOLIC_LINK
00360 };
00361
00362
00374 enum FilePermissions
00375 {
00376 PERM_SUID = S_ISUID,
00377 PERM_SGID = S_ISGID,
00378 PERM_STICKY = 01000,
00379 PERM_USER_READ = S_IRUSR,
00380 PERM_USER_WRITE = S_IWUSR,
00381 PERM_USER_EXEC = S_IXUSR,
00382 PERM_USER_ALL = S_IRUSR | S_IWUSR | S_IXUSR,
00383 PERM_GROUP_READ = S_IRGRP,
00384 PERM_GROUP_WRITE = S_IWGRP,
00385 PERM_GROUP_EXEC = S_IXGRP,
00386 PERM_GROUP_ALL = S_IRGRP | S_IWGRP | S_IXGRP,
00387 PERM_OTHER_READ = S_IROTH,
00388 PERM_OTHER_WRITE = S_IWOTH,
00389 PERM_OTHER_EXEC = S_IXOTH,
00390 PERM_OTHER_ALL = S_IROTH | S_IWOTH | S_IXOTH,
00391 PERM_ACCESS_READABLE = 1 << 16,
00392 PERM_ACCESS_WRITABLE = 1 << 17,
00393 PERM_ACCESS_EXECUTABLE = 1 << 18
00394 };
00395
00397 inline FilePermissions operator|(FilePermissions lhs, FilePermissions rhs)
00398 { return static_cast<FilePermissions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00399
00401 inline FilePermissions operator&(FilePermissions lhs, FilePermissions rhs)
00402 { return static_cast<FilePermissions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00403
00405 inline FilePermissions operator^(FilePermissions lhs, FilePermissions rhs)
00406 { return static_cast<FilePermissions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00407
00409 inline FilePermissions operator~(FilePermissions flags)
00410 { return static_cast<FilePermissions>(~static_cast<unsigned>(flags)); }
00411
00413 inline FilePermissions& operator|=(FilePermissions& lhs, FilePermissions rhs)
00414 { return (lhs = static_cast<FilePermissions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00415
00417 inline FilePermissions& operator&=(FilePermissions& lhs, FilePermissions rhs)
00418 { return (lhs = static_cast<FilePermissions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00419
00421 inline FilePermissions& operator^=(FilePermissions& lhs, FilePermissions rhs)
00422 { return (lhs = static_cast<FilePermissions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00423
00424
00436 enum SetFileInfoMask
00437 {
00438 SET_FILE_INFO_NONE = 0,
00439 SET_FILE_INFO_NAME = 1 << 0,
00440 SET_FILE_INFO_PERMISSIONS = 1 << 1,
00441 SET_FILE_INFO_OWNER = 1 << 2,
00442 SET_FILE_INFO_TIME = 1 << 3
00443 };
00444
00446 inline SetFileInfoMask operator|(SetFileInfoMask lhs, SetFileInfoMask rhs)
00447 { return static_cast<SetFileInfoMask>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00448
00450 inline SetFileInfoMask operator&(SetFileInfoMask lhs, SetFileInfoMask rhs)
00451 { return static_cast<SetFileInfoMask>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00452
00454 inline SetFileInfoMask operator^(SetFileInfoMask lhs, SetFileInfoMask rhs)
00455 { return static_cast<SetFileInfoMask>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00456
00458 inline SetFileInfoMask operator~(SetFileInfoMask flags)
00459 { return static_cast<SetFileInfoMask>(~static_cast<unsigned>(flags)); }
00460
00462 inline SetFileInfoMask& operator|=(SetFileInfoMask& lhs, SetFileInfoMask rhs)
00463 { return (lhs = static_cast<SetFileInfoMask>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00464
00466 inline SetFileInfoMask& operator&=(SetFileInfoMask& lhs, SetFileInfoMask rhs)
00467 { return (lhs = static_cast<SetFileInfoMask>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00468
00470 inline SetFileInfoMask& operator^=(SetFileInfoMask& lhs, SetFileInfoMask rhs)
00471 { return (lhs = static_cast<SetFileInfoMask>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00472
00473
00477 enum MonitorType
00478 {
00479 MONITOR_FILE,
00480 MONITOR_DIRECTORY
00481 };
00482
00483
00487 enum MonitorEventType
00488 {
00489 MONITOR_EVENT_CHANGED,
00490 MONITOR_EVENT_DELETED,
00491 MONITOR_EVENT_STARTEXECUTING,
00492 MONITOR_EVENT_STOPEXECUTING,
00493 MONITOR_EVENT_CREATED,
00494 MONITOR_EVENT_METADATA_CHANGED
00495 };
00496
00497
00501 enum MimeApplicationArgumentType
00502 {
00503 APPLICATION_ARGUMENT_TYPE_URIS,
00504 APPLICATION_ARGUMENT_TYPE_PATHS,
00505 APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES
00506 };
00507
00508
00512 enum MimeActionType
00513 {
00514 ACTION_TYPE_NONE,
00515 ACTION_TYPE_APPLICATION,
00516 ACTION_TYPE_COMPONENT
00517 };
00518
00519
00520
00532 enum TransferOptions
00533 {
00534 XFER_DEFAULT = 0,
00535 XFER_UNUSED_1 = 1 << 0,
00536 XFER_FOLLOW_LINKS = 1 << 1,
00537 XFER_UNUSED_2 = 1 << 2,
00538 XFER_RECURSIVE = 1 << 3,
00539 XFER_SAMEFS = 1 << 4,
00540 XFER_DELETE_ITEMS = 1 << 5,
00541 XFER_EMPTY_DIRECTORIES = 1 << 6,
00542 XFER_NEW_UNIQUE_DIRECTORY = 1 << 7,
00543 XFER_REMOVESOURCE = 1 << 8,
00544 XFER_USE_UNIQUE_NAMES = 1 << 9,
00545 XFER_LINK_ITEMS = 1 << 10,
00546 XFER_FOLLOW_LINKS_RECURSIVE = 1 << 11
00547 };
00548
00550 inline TransferOptions operator|(TransferOptions lhs, TransferOptions rhs)
00551 { return static_cast<TransferOptions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00552
00554 inline TransferOptions operator&(TransferOptions lhs, TransferOptions rhs)
00555 { return static_cast<TransferOptions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00556
00558 inline TransferOptions operator^(TransferOptions lhs, TransferOptions rhs)
00559 { return static_cast<TransferOptions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00560
00562 inline TransferOptions operator~(TransferOptions flags)
00563 { return static_cast<TransferOptions>(~static_cast<unsigned>(flags)); }
00564
00566 inline TransferOptions& operator|=(TransferOptions& lhs, TransferOptions rhs)
00567 { return (lhs = static_cast<TransferOptions>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00568
00570 inline TransferOptions& operator&=(TransferOptions& lhs, TransferOptions rhs)
00571 { return (lhs = static_cast<TransferOptions>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00572
00574 inline TransferOptions& operator^=(TransferOptions& lhs, TransferOptions rhs)
00575 { return (lhs = static_cast<TransferOptions>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00576
00577
00581 enum ProgressStatus
00582 {
00583 XFER_PROGRESS_STATUS_OK,
00584 XFER_PROGRESS_STATUS_VFSERROR,
00585 XFER_PROGRESS_STATUS_OVERWRITE,
00586 XFER_PROGRESS_STATUS_DUPLICATE
00587 };
00588
00589
00593 enum OverwriteMode
00594 {
00595 XFER_OVERWRITE_MODE_ABORT,
00596 XFER_OVERWRITE_MODE_QUERY,
00597 XFER_OVERWRITE_MODE_REPLACE,
00598 XFER_OVERWRITE_MODE_SKIP
00599 };
00600
00601
00605 enum OverwriteAction
00606 {
00607 XFER_OVERWRITE_ACTION_ABORT,
00608 XFER_OVERWRITE_ACTION_REPLACE,
00609 XFER_OVERWRITE_ACTION_REPLACE_ALL,
00610 XFER_OVERWRITE_ACTION_SKIP,
00611 XFER_OVERWRITE_ACTION_SKIP_ALL
00612 };
00613
00614
00618 enum ErrorMode
00619 {
00620 XFER_ERROR_MODE_ABORT,
00621 XFER_ERROR_MODE_QUERY
00622 };
00623
00624
00628 enum ErrorAction
00629 {
00630 XFER_ERROR_ACTION_ABORT,
00631 XFER_ERROR_ACTION_RETRY,
00632 XFER_ERROR_ACTION_SKIP
00633 };
00634
00635
00639 enum Phase
00640 {
00641 XFER_PHASE_INITIAL,
00642 XFER_CHECKING_DESTINATION,
00643 XFER_PHASE_COLLECTING,
00644 XFER_PHASE_READYTOGO,
00645 XFER_PHASE_OPENSOURCE,
00646 XFER_PHASE_OPENTARGET,
00647 XFER_PHASE_COPYING,
00648 XFER_PHASE_MOVING,
00649 XFER_PHASE_READSOURCE,
00650 XFER_PHASE_WRITETARGET,
00651 XFER_PHASE_CLOSESOURCE,
00652 XFER_PHASE_CLOSETARGET,
00653 XFER_PHASE_DELETESOURCE,
00654 XFER_PHASE_SETATTRIBUTES,
00655 XFER_PHASE_FILECOMPLETED,
00656 XFER_PHASE_CLEANUP,
00657 XFER_PHASE_COMPLETED,
00658 XFER_NUM_PHASES
00659 };
00660
00661
00662 }
00663 }
00664
00665
00666 #endif
00667