Big code evolution for file transfer feature.
Added methods to the TransferQueue class for flag managing.
Added upload() and download() methods to the FileTransfer class.
Reconstruction of FTProgress class.
Code improvements.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@418 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb/TransferQueue.cxx b/rfb/TransferQueue.cxx
index 820ca68..58b9273 100644
--- a/rfb/TransferQueue.cxx
+++ b/rfb/TransferQueue.cxx
@@ -242,13 +242,32 @@
TransferQueue::setFlagsAt(unsigned int number, unsigned int value)
{
if ((number >= 0) && (number < m_numEntries)) {
- m_pEntries[number].info.flags = value;
+ m_pEntries[number].info.flags = m_pEntries[number].info.flags | value;
return true;
}
return false;
}
bool
+TransferQueue::clearFlagAt(unsigned int number, unsigned int value)
+{
+ if ((number >= 0) && (number < m_numEntries)) {
+ m_pEntries[number].info.flags = (m_pEntries[number].info.flags & (value ^ 0xFFFFFFFF));
+ return true;
+ }
+ return false;
+}
+
+bool
+TransferQueue::setFlagToAll(unsigned int flag)
+{
+ for (unsigned int i = 0; i < m_numEntries; i++) {
+ setFlagsAt(i, flag);
+ }
+ return true;
+}
+
+bool
TransferQueue::deleteAt(unsigned int number)
{
if ((number >= m_numEntries) || (number < 0)) return false;
diff --git a/rfb/TransferQueue.h b/rfb/TransferQueue.h
index b12c058..02a043d 100644
--- a/rfb/TransferQueue.h
+++ b/rfb/TransferQueue.h
@@ -64,6 +64,8 @@
bool setSizeAt(unsigned int number, unsigned int value);
bool setDataAt(unsigned int number, unsigned int value);
bool setFlagsAt(unsigned int number, unsigned int value);
+ bool clearFlagAt(unsigned int number, unsigned int value);
+ bool setFlagToAll(unsigned int flag);
bool deleteAt(unsigned int number);
diff --git a/rfb/fttypes.h b/rfb/fttypes.h
index 229d44b..5b08fd0 100644
--- a/rfb/fttypes.h
+++ b/rfb/fttypes.h
@@ -30,9 +30,23 @@
#define FT_MAX_STATUS_STRINGS 255
#define FT_MAX_LENGTH_STATUS_STRINGS 130
-#define FT_ATTR_UNKNOWN 0x00000000
-#define FT_ATTR_FILE 0x00000001
-#define FT_ATTR_DIR 0x00000002
+#define FT_ATTR_UNKNOWN 0x00000000
+#define FT_ATTR_FILE 0x00000001
+#define FT_ATTR_DIR 0x00000002
+
+#define FT_ATTR_RESIZE_NEEDED 0x00040000
+#define FT_ATTR_FOLDER_EXISTS 0x00080000
+#define FT_ATTR_COPY_OVERWRITE 0x00100000
+#define FT_ATTR_FLR_UPLOAD_CHECK 0x00200000
+#define FT_ATTR_FLR_UPLOAD_ADD 0x00400000
+#define FT_ATTR_COPY_UPLOAD 0x00800000
+#define FT_ATTR_FLR_DOWNLOAD_CHECK 0x01000000
+#define FT_ATTR_FLR_DOWNLOAD_ADD 0x02000000
+#define FT_ATTR_COPY_DOWNLOAD 0x04000000
+#define FT_ATTR_DELETE_LOCAL 0x08000000
+#define FT_ATTR_DELETE_REMOTE 0x10000000
+#define FT_ATTR_RENAME_LOCAL 0x20000000
+#define FT_ATTR_RENAME_REMOTE 0x40000000
#define FT_FLR_DEST_MAIN 101
#define FT_FLR_DEST_BROWSE 102