Author: ruschein
Date: 2011-09-22 16:43:58 -0700 (Thu, 22 Sep 2011)
New Revision: 26941

Added:
   csplugins/trunk/ucsd/ruschein/GSFS/progs/ParseDirectory.cc
   csplugins/trunk/ucsd/ruschein/GSFS/progs/directory_listing.txt
Modified:
   csplugins/trunk/ucsd/ruschein/GSFS/progs/Makefile
Log:
Work in progress.

Modified: csplugins/trunk/ucsd/ruschein/GSFS/progs/Makefile
===================================================================
--- csplugins/trunk/ucsd/ruschein/GSFS/progs/Makefile   2011-09-22 22:39:37 UTC 
(rev 26940)
+++ csplugins/trunk/ucsd/ruschein/GSFS/progs/Makefile   2011-09-22 23:43:58 UTC 
(rev 26941)
@@ -1,7 +1,7 @@
 CXX         = g++-mp-4.4
 CXXFLAGS    = -W -Wall -Werror -I../include
 LIBS        = -lcurl -lpcre -lssl -lcrypto -L/opt/local/lib -lmagic -lz -L 
../lib -liViaCoreSubset
-PROGS       = FetchPage GSAuth GsSessionTest
+PROGS       = FetchPage GSAuth GsSessionTest ParseDirectory JSONScannerTest
 
 
 all: $(PROGS)
@@ -27,5 +27,20 @@
 GsSessionTest: GsSessionTest.o GsSession.o
        $(CXX) -o $@ $^ $(LIBS)
 
+ParseDirectory.o: ParseDirectory.cc
+       $(CXX) $(CXXFLAGS) -I. -c $<
+
+ParseDirectory: ParseDirectory.o
+       $(CXX) -o $@ $^ $(LIBS)
+
+JSONScanner.o: JSONScanner.cc JSONScanner.h
+       $(CXX) $(CXXFLAGS) -I. -c $<
+
+JSONScannerTest.o: JSONScannerTest.cc JSONScanner.h
+       $(CXX) $(CXXFLAGS) -I. -c $<
+
+JSONScannerTest: JSONScannerTest.o JSONScanner.o
+       $(CXX) -o $@ $^ $(LIBS)
+
 clean:
        rm -f *.o *~ $(PROGS)

Added: csplugins/trunk/ucsd/ruschein/GSFS/progs/ParseDirectory.cc
===================================================================
--- csplugins/trunk/ucsd/ruschein/GSFS/progs/ParseDirectory.cc                  
        (rev 0)
+++ csplugins/trunk/ucsd/ruschein/GSFS/progs/ParseDirectory.cc  2011-09-22 
23:43:58 UTC (rev 26941)
@@ -0,0 +1,99 @@
+#include <iostream>
+#include <vector>
+#include <cstdlib>
+#include <FileUtil.h>
+
+
+void Usage() {
+       std::cerr << "usage: ParseDirectory 
GenomeSpace_JSON_directory_listing\n";
+       std::exit(EXIT_FAILURE);
+}
+
+
+class DirEntry {
+};
+
+
+bool Expect(std::string::const_iterator &ch, const std::string::const_iterator 
&end, const char * const expected_string) {
+       const char *next_expected_char = expected_string;
+       while (*next_expected_char != '\0') {
+               if (ch == end)
+                       return false;
+               if (*ch != *next_expected_char)
+                       return false;
+               ++ch, ++next_expected_char;
+       }
+
+       return true;
+}
+
+
+bool ParseBoolean(std::string::const_iterator &ch, const 
std::string::const_iterator &end, bool * const value) {
+       if (*ch != 't' && *ch != 'f')
+               return false;
+
+       if (*ch == 't') {
+               if (!Expect(ch, end, "true"))
+                       return false;
+               *value = true;
+       } else {
+               if (!Expect(ch, end, "false"))
+                       return false;
+               *value = false;
+       }
+
+       return true;
+}
+
+
+// Assumes that "ch" points to the first character of the string.
+bool ParseString(std::string::const_iterator &ch, const 
std::string::const_iterator &end, std::string * const value) {
+       value->clear();
+
+       for (;;) {
+               if (ch == end)
+                       return false;
+
+               if (*ch == '"') {
+                       ++ch;
+                       return true;
+               }
+                       
+               if (*ch == '\\') { // escaped character (we're ignoring unicode 
values for now
+                       ++ch;
+                       if (*ch == 'u') {
+                               std::cerr << "*** unicode char support not 
implemented!\n";
+                               return false;
+                       }
+                       *value += *ch;
+                       ++ch;
+               } else {
+                       *value += *ch;
+                       ++ch;
+               }
+       }
+}
+
+
+bool ParseListing(const std::string &listing, std::vector<DirEntry> * const 
entries) {
+       entries->clear();
+
+       for (std::string::const_iterator ch = listing.begin(); ch != 
listing.end(); ++ch) {
+       }
+
+       return true;
+}
+
+
+int main(int argc, char *argv[]) {
+       if (argc != 2)
+               Usage();
+
+       std::string json_directory_listing;
+       if (!FileUtil::ReadFile(argv[1], &json_directory_listing)) {
+               std::cerr << "*** Failed to read a directory listing from \"" 
<< argv[1] << "\"!";
+               std::exit(EXIT_FAILURE);
+       }
+
+       std::cout << json_directory_listing << '\n';
+}

Added: csplugins/trunk/ucsd/ruschein/GSFS/progs/directory_listing.txt
===================================================================
--- csplugins/trunk/ucsd/ruschein/GSFS/progs/directory_listing.txt              
                (rev 0)
+++ csplugins/trunk/ucsd/ruschein/GSFS/progs/directory_listing.txt      
2011-09-22 23:43:58 UTC (rev 26941)
@@ -0,0 +1,138 @@
+{"directory":
+       {"name":"test",
+        
"url":"https:\/\/dmdev.genomespace.org:8444\/datamanager\/files\/users\/test",
+        "path":"\/users\/test",
+        "owner":
+               {"id":"test",
+                "name":"test",
+                "type":"User"},
+         "size":0,
+         "isDirectory":true,
+         "effectiveAcl":
+               {"objectId":"\/users\/test",
+                "objectType":"DataManagerFileObject",
+                "accessControlEntries":
+                       [
+                               {"sid":
+                                       
{"id":"test","name":"test","type":"User"},
+                                       "permission":"R"
+                               },
+                               {"sid":
+                                       
{"id":"test","name":"test","type":"User"},
+                                        "permission":"W"}
+                       ]
+               }
+       },
+       "contents":
+               [
+                       {"name":"FileProcessorTestData_twoRecords.gct",
+                        
"url":"https:\/\/dmdev.genomespace.org:8444\/datamanager\/files\/users\/test\/FileProcessorTestData_twoRecords.gct",
+                        
"path":"\/users\/test\/FileProcessorTestData_twoRecords.gct",
+                        "owner":
+                               {"id":"test",
+                                "name":"test",
+                                "type":"User"},
+                               "size":225,
+                               "lastModified":"2011-08-23T16:36:57Z",
+                               "isDirectory":false,
+                               
"dataFormat":{"name":"gct","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gct\/0.0.0","fileExtension":"gct"},
+                               "availableDataFormats":
+                                       [
+                                               
{"name":"genomicatab","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/genomicatab\/0.0.0","fileExtension":"tab"},
+                                               
{"name":"gxp","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gxp\/0.0.0","fileExtension":"gxp"},
+                                               
{"name":"gct","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gct\/0.0.0","fileExtension":"gct"}
+                                       ],
+                               "effectiveAcl":
+                                       
{"objectId":"\/users\/test\/FileProcessorTestData_twoRecords.gct",
+                                        "objectType":"DataManagerFileObject",
+                                        "accessControlEntries":
+                                               [
+                                                       {"sid":
+                                                               
{"id":"test","name":"test","type":"User"},
+                                                               "permission":"R"
+                                                       },
+                                                       {"sid":
+                                                               
{"id":"test","name":"test","type":"User"},
+                                                               "permission":"W"
+                                                       }
+                                               ]
+                                       }
+                       },
+                       {"name":"FileProcessorTestData_twoRecords.gxp",
+                        
"url":"https:\/\/dmdev.genomespace.org:8444\/datamanager\/files\/users\/test\/FileProcessorTestData_twoRecords.gxp",
+                        
"path":"\/users\/test\/FileProcessorTestData_twoRecords.gxp",
+                        "owner":{"id":"test","name":"test","type":"User"},
+                        "size":879,
+                        "lastModified":"2011-08-24T18:16:18Z",
+                        "isDirectory":false,
+                        
"dataFormat":{"name":"gxp","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gxp\/0.0.0","fileExtension":"gxp"},
+                        "availableDataFormats":
+                               [
+                                       
{"name":"gct","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gct\/0.0.0","fileExtension":"gct"},
+                                       
{"name":"gxp","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gxp\/0.0.0","fileExtension":"gxp"}
+                               ],
+                        "effectiveAcl":
+                               
{"objectId":"\/users\/test\/FileProcessorTestData_twoRecords.gxp",
+                                "objectType":"DataManagerFileObject",
+                                "accessControlEntries":
+                                       [
+                                               {"sid":
+                                                       
{"id":"test","name":"test","type":"User"},
+                                                       "permission":"R"},
+                                               {"sid":
+                                                       
{"id":"test","name":"test","type":"User"},
+                                                       "permission":"W"}
+                                       ]
+                               }
+                       },
+                       {"name":"dm-play.tar",
+                        
"url":"https:\/\/dmdev.genomespace.org:8444\/datamanager\/files\/users\/test\/dm-play.tar",
+                        "path":"\/users\/test\/dm-play.tar",
+                        "owner":{"id":"test","name":"test","type":"User"},
+                        "size":26180096,
+                        "lastModified":"2011-09-19T16:55:30Z",
+                        "isDirectory":false,
+                        "availableDataFormats":[],
+                        "effectiveAcl":
+                               {"objectId":"\/users\/test\/dm-play.tar",
+                                "objectType":"DataManagerFileObject",
+                                "accessControlEntries":
+                                       [
+                                               {"sid":
+                                                       
{"id":"test","name":"test","type":"User"},
+                                                       "permission":"R"},
+                                               {"sid":
+                                                       
{"id":"test","name":"test","type":"User"},
+                                                       "permission":"W"}
+                                       ]
+                               }
+                       },
+                       
{"name":"eclipse-jee-helios-SR1-macosx-cocoa-x86_64.tar.gz",
+                        
"url":"https:\/\/dmdev.genomespace.org:8444\/datamanager\/files\/users\/test\/eclipse-jee-helios-SR1-macosx-cocoa-x86_64.tar.gz",
+                        
"path":"\/users\/test\/eclipse-jee-helios-SR1-macosx-cocoa-x86_64.tar.gz",
+                        "owner":{"id":"test","name":"test","type":"User"},
+                        "size":214775966,
+                        "lastModified":"2011-09-21T15:56:37Z",
+                        "isDirectory":false,
+                        "availableDataFormats":[],
+                        "effectiveAcl":
+                               
{"objectId":"\/users\/test\/eclipse-jee-helios-SR1-macosx-cocoa-x86_64.tar.gz",
+                                "objectType":"DataManagerFileObject",
+                                "accessControlEntries":
+                                       [
+                                               {"sid":
+                                                       
{"id":"test","name":"test","type":"User"},
+                                                       "permission":"R"},
+                                               {"sid":
+                                                       
{"id":"test","name":"test","type":"User"},
+                                                       "permission":"W"}
+                                       ]
+                               }
+                       },
+                       {"name":"atm-test",
+                        
"url":"https:\/\/dmdev.genomespace.org:8444\/datamanager\/files\/users\/test\/atm-test",
+                        "path":"\/users\/test\/atm-test",
+                        "owner":{"id":"test","name":"test","type":"User"},
+                        "size":0,
+                        "isDirectory":true,
+                        
"effectiveAcl":{"objectId":"\/users\/test\/atm-test","objectType":"DataManagerFileObject","accessControlEntries":[{"sid":{"id":"test","name":"test","type":"User"},"permission":"R"},{"sid":{"id":"test","name":"test","type":"User"},"permission":"W"}]}}]}

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to