Added FileInfo::getFilenamesSize() and FileInfo::getAllFilenames() methods.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@464 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb/FileInfo.cxx b/rfb/FileInfo.cxx
index 08e5654..0d770f3 100644
--- a/rfb/FileInfo.cxx
+++ b/rfb/FileInfo.cxx
@@ -223,3 +223,37 @@
   }
   m_numEntries = 0;
 }
+
+unsigned int
+FileInfo::getFilenamesSize()
+{
+  if (getNumEntries() == 0) return 0;
+
+  unsigned int filenamesSize = 0;
+
+  for (unsigned int i = 0; i < getNumEntries(); i++) {
+    filenamesSize += strlen(getNameAt(i));
+  }
+
+  return filenamesSize;
+}
+
+char *
+FileInfo::getAllFilenames(unsigned int *pFilenameSize)
+{
+  unsigned int filenameSize = getFilenamesSize() + getNumEntries();
+
+  char *pFilenames = new char[filenameSize];
+  unsigned int pos = 0;
+
+  for (unsigned int i = 0; i < getNumEntries(); i++) {
+    char *pName = getNameAt(i);
+    unsigned int len = strlen(pName);
+
+    memcpy((void *)&pFilenames[pos], pName, len + 1);
+    pos += len + 2;
+  }
+
+  *pFilenameSize = filenameSize;
+  return pFilenames;
+}