Continue restructuring; compilation errors are down to garden-variety stuff
authorPhil Miller <mille121@illinois.edu>
Tue, 9 Jul 2013 17:16:31 +0000 (12:16 -0500)
committerPhil Miller <mille121@illinois.edu>
Tue, 20 Aug 2013 23:28:24 +0000 (18:28 -0500)
src/libs/ck-libs/io/ckio.C
src/libs/ck-libs/io/ckio.ci
src/libs/ck-libs/io/ckio.h

index 9c02c72a326c72aa65fc06d1ba335ea741a06a50..5711ff06e8a1e00b2857e6b87cc658b4f55a3694 100644 (file)
@@ -1,3 +1,5 @@
+#include <string>
+#include "CkIO.decl.h"
 #include <ckio.h>
 #include <errno.h>
 #include <algorithm>
@@ -30,7 +32,20 @@ ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
 #endif
 
 namespace Ck { namespace IO {
-    
+
+    namespace impl {
+      CProxy_Director director;
+    }
+
+    void open(std::string name, CkCallback opened, Options opts) {
+      impl::director.openFile(name, opened, opts);
+    }
+
+    void startSession(FileToken token, size_t bytes, size_t offset,
+                      CkCallback ready, CkCallback complete) {
+      impl::director.prepareWriteSession(token, bytes, offset, ready, complete);
+    }
+
     void write(SessionToken token, const char *data, size_t bytes, size_t offset) {
       Options &opts = files[token].opts;
       while (bytes > 0) {
@@ -46,17 +61,18 @@ namespace Ck { namespace IO {
     }
 
     namespace impl {
-      CProxy_Director director;
 
       class Director : public CBase_Director {
         int filesOpened;
         std::map<FileToken, impl::FileInfo> files;
+        CProxy_Manager managers;
 
       public:
         Director()
           : filesOpened(0)
         {
           director = thisProxy;
+          managers = CProxy_Manager::ckNew();
         }
 
         void openFile(std::string name, CkCallback opened, Options opts) {
@@ -77,7 +93,7 @@ namespace Ck { namespace IO {
           CkAssert(lastActivePE(opts) < CkNumPes());
           CkAssert(opts.writeStripe <= opts.peStripe);
 
-          files[filesOpened] = impl::FileInfo(name, opts);
+          files[filesOpened] = FileInfo(name, opts);
           managers.openFile(filesOpened++, name, opened, opts);
         }
 
index e24de73f334a39dfca3b4cf2013357a3dda14530..ccb818f35d6e11a8df6c1632e581239e79275f5e 100644 (file)
@@ -1,15 +1,21 @@
 module CkIO {
+
   namespace Ck { namespace IO {
       message FileReadyMsg;
       message SessionReadyMsg;
       message SessionCommitMsg;
+    }
+  }
 
+  include "ckio.h";
+
+  namespace Ck { namespace IO {
       namespace impl {
         readonly CProxy_Director director;
 
         mainchare Director
         {
-          entry Director();
+          entry Director(CkArgMsg *);
 
           /// Serialize setting up each file through this chare, so that all PEs
           /// have the same sequence
index 4589354a0897a09ffee5e5aeae6a0a42dff5b4ce..2ad675802237198edc358a84a314c421a397465b 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <cstring>
 #include <string>
-#include <algorithm>
+//#include <algorithm>
 #include <utility>
 #include <fcntl.h>
 #include <pup_stl.h>
@@ -41,12 +41,12 @@ namespace Ck { namespace IO {
   struct FileReadyMsg;
 
   void open(std::string name, CkCallback opened, Options opts);
-  void startSession(FileToken token, size_t offset, size_t bytes, CkCallback complete);
+  void startSession(FileToken token, size_t bytes, size_t offset,
+                    CkCallback ready, CkCallback complete);
   void write(SessionToken token, const char *data, size_t bytes, size_t offset);
   }
 }
 
-#include "CkIO.decl.h"
 #include <map>
 #include <vector>
 
@@ -69,6 +69,7 @@ namespace Ck { namespace IO {
         { }
       SessionInfo()
         : file(-1)
+        { }
     };
 
     struct FileInfo {
@@ -85,6 +86,7 @@ namespace Ck { namespace IO {
     };
   }
 
+#if 0
   /// Class to mediate IO operations between Charm++ application code
   /// and underlying filesystems.
   ///
@@ -120,6 +122,7 @@ namespace Ck { namespace IO {
       return opts.basePE + (opts.activePEs-1)*opts.skipPEs;
     }
   };
+#endif
 
   }}
 #endif