summaryrefslogtreecommitdiff
path: root/StructEnumDefinition.h
diff options
context:
space:
mode:
Diffstat (limited to 'StructEnumDefinition.h')
-rw-r--r--StructEnumDefinition.h153
1 files changed, 153 insertions, 0 deletions
diff --git a/StructEnumDefinition.h b/StructEnumDefinition.h
new file mode 100644
index 0000000..e8f8de2
--- /dev/null
+++ b/StructEnumDefinition.h
@@ -0,0 +1,153 @@
+/** \file StructEnumDefinition.h
+\brief Define the structure and enumeration used in ultracopier or into the plugin
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#include <string>
+#include <stdint.h>
+
+#ifndef STRUCTDEF_H
+#define STRUCTDEF_H
+
+namespace Ultracopier {
+/// \brief Define the mode of the copy window/request, if need be copy or move
+enum CopyMode
+{
+ Copy=0x00000000,
+ Move=0x00000001
+};
+
+enum RemainingTimeAlgo
+{
+ RemainingTimeAlgo_Traditional=0x00000000,
+ RemainingTimeAlgo_Logarithmic=0x00000001
+};
+
+/// \brief Define the catching state, if the copy is totally catch of the explorer, partially or nothing
+enum CatchState
+{
+ Uncaught=0x00000000,
+ Semiuncaught=0x00000001,
+ Caught=0x00000002
+};
+
+/// \brief Define the listening state
+enum ListeningState
+{
+ NotListening=0x00000000,///< 0 listener is listening
+ SemiListening=0x00000001,///< only part of listeners are listening
+ FullListening=0x00000002///< all the listeners are listening
+};
+
+/// \brief Define the copy type, if folder, file or both
+enum CopyType
+{
+ File = 0x00000001,
+ FileAndFolder = 0x00000002
+};
+
+/// \brief transfer list operation, can define nothing, the import/export or both
+enum TransferListOperation
+{
+ TransferListOperation_None = 0x00000000,
+ TransferListOperation_Import = 0x00000001,
+ TransferListOperation_Export = 0x00000002,
+ TransferListOperation_ImportExport = TransferListOperation_Import | TransferListOperation_Export
+};
+
+enum EngineActionInProgress
+{
+ Idle = 0x00000000,
+ Listing = 0x00000001,
+ Copying = 0x00000002,
+ CopyingAndListing = Listing | Copying
+};
+
+/// \brief the level of information
+enum DebugLevel
+{
+ DebugLevel_Information=0x00000001, ///< Information like the compiler, OS, Qt version, all to know in witch condition ultracopier is launched
+ DebugLevel_Critical=0x00000002, ///< Critical error, where it don't know how skip it
+ DebugLevel_Warning=0x00000003, ///< Error, but have way to skip it
+ DebugLevel_Notice=0x00000004 ///< General information to debug, what file is open, what event is received, ...
+};
+
+enum SizeUnit
+{
+ SizeUnit_byte=0x00000000,
+ SizeUnit_KiloByte=0x00000001,
+ SizeUnit_MegaByte=0x00000002,
+ SizeUnit_GigaByte=0x00000003,
+ SizeUnit_TeraByte=0x00000004,
+ SizeUnit_PetaByte=0x00000005,
+ SizeUnit_ExaByte=0x00000006,
+ SizeUnit_ZettaByte=0x00000007,
+ SizeUnit_YottaByte=0x00000008
+};
+
+/// \brief structure for decompossed time
+struct TimeDecomposition
+{
+ uint16_t second;
+ uint16_t minute;
+ uint16_t hour;
+};
+
+//////////////////////////// Return list //////////////////////////////
+enum ActionTypeCopyList
+{
+ //playlist action
+ MoveItem=0x00000000,
+ RemoveItem=0x00000001,
+ AddingItem=0x00000002,
+ //Item action, to inform the stat of one entry
+ PreOperation=0x00000003,
+ Transfer=0x00000004,
+ PostOperation=0x00000005,
+ CustomOperation=0x00000006 /// \note this need be used after preoperation and before postoperation
+};
+
+/// \brief structure for progression item
+struct ProgressionItem
+{
+ uint64_t id;
+ uint64_t currentRead;
+ uint64_t currentWrite;
+ uint64_t total;
+};
+
+/// \brief item to insert item in the interface
+struct ItemOfCopyList
+{
+ uint64_t id;
+ // if type == CustomOperation, then is the translated name of the operation
+ std::string sourceFullPath;///< full path with file name: /foo/foo.txt
+ std::string sourceFileName;///< full path with file name: foo.txt
+ std::string destinationFullPath;///< full path with file name: /foo/foo.txt
+ std::string destinationFileName;///< full path with file name: foo.txt
+ // if type == CustomOperation, then 0 = without progression, 1 = with progression
+ uint64_t size;
+ CopyMode mode;
+};
+
+/// \brief The definition of no removing action on transfer list
+struct ActionOnCopyList
+{
+ int position;
+ // if type == MoveItem
+ // if type == RemoveItem, then 0 = normal remove, 1 = skip
+ int moveAt;
+};
+
+/// \brief action normal or due to interface query on copy list
+struct ReturnActionOnCopyList
+{
+ ActionTypeCopyList type;
+ ///< used if type == AddingItem || type == PreOperation (for interface without transfer list) || type == CustomOperation
+ ItemOfCopyList addAction;
+ ///< used if type != AddingItem
+ ActionOnCopyList userAction;
+};
+}
+
+#endif // STRUCTDEF_H