]> git.treefish.org Git - phys/latlib.git/blobdiff - o815/obs.cpp
...
[phys/latlib.git] / o815 / obs.cpp
index cd86bf610508e3e3706fde0a6a1555b601a73e12..807d4ee2195863f8860beae7fe48cc776e5394a3 100644 (file)
@@ -1,26 +1,37 @@
 #include "o815.h"
 
-void o815::obs::_meas(bool loadedobs) {
-  *olog << "OBS_" << obsid << ": meas not implemented!" << endl << flush;
-};
-
-void o815::obs::_finish() {
-  *olog << "OBS_" << obsid << ": finish not implemented!" << endl << flush;
-};
+#include "latlib/hypercache.h"
 
 void o815::obs::finish() {
   _finish();
 }
 
-void o815::obs::meas() {
-  _meas(true);
+void o815::obs::start() {
+  if(O815->rank==0) {
+    *out << "#" << O815->programid << "-" << obsid << O815->headMaster() << endl << flush;
+    *out << "#" << O815->programid << "-" << obsid << O815->headMaster() << "-" << datadesc << endl << flush;
+  }
+
+  if (O815->comargs.outdir=="")
+    MPI_Barrier(MPI_COMM_WORLD);
+  
+  _start();
+}
+
+void o815::obs::meas(bool loadedobs) {
+  _meas(loadedobs);
 }
 
-o815::obs::obs(const string& _obsid, o815 *_O815) {
+o815::obs::obs(const string& _obsid, const string& _datadesc, o815 *_O815, const int& obsmemSize) {
   obsid = _obsid;
   O815 = _O815;
-  
+  datadesc = _datadesc;
   O815->out->newsub(obsid);
-  oout = O815->out->out[obsid];
-  olog = O815->out->log;
+
+  out = O815->out->out[obsid];
+  log = O815->out->log;
+  paraQ = O815->paraQ;
+
+  ocid = hypercache::initO(O815->programid + "-" + obsid, O815->comargs.nequi, O815->comargs.nskip,
+                          O815->comargs.obscache.first, &obsMem, obsmemSize, O815->comargs.obscache.second, log);
 }