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.