]> git.treefish.org Git - phys/latlib.git/commitdiff
Added resetconfig routine.
authorAlexander Schmidt <alex@treefish.org>
Fri, 5 Dec 2014 12:38:52 +0000 (13:38 +0100)
committerAlexander Schmidt <alex@treefish.org>
Fri, 5 Dec 2014 12:38:52 +0000 (13:38 +0100)
datread.cpp
datread.h
o815/o815.cpp
o815/o815.h

index 41d3724930f34ebc4b63cfc75a26a87b7cf42fde..4a0e31dc5d112ad182360e074d45372edd33350e 100644 (file)
@@ -26,22 +26,13 @@ int datread::openFile (const string& filename)
     getline(infile, parastring);
   }
 
-  if (inbuffer != NULL)
-    delete inbuffer;
-  
-  inbuffer = new boost::iostreams::filtering_istreambuf;
+  inbuffer = unique_ptr<boost::iostreams::filtering_istreambuf>(new boost::iostreams::filtering_istreambuf);
   inbuffer->push( boost::iostreams::bzip2_decompressor() );
   inbuffer->push(infile);
 
   return 0;
 }
 
-datread::~datread ()
-{
-  if (inbuffer != NULL)
-    delete inbuffer;
-}
-
 int datread::readDataToMem (char *tmpData, long unsigned int dataSize)
 {
   int readturn = -1;
index 8ef4b152a5e357e532ff1f5be888c2624de105ba..64fd850845675d4987dbce3a8c8a84eb4ef8340f 100644 (file)
--- a/datread.h
+++ b/datread.h
@@ -3,6 +3,7 @@
 
 #include <ostream>
 #include <fstream>
+#include <memory>
 
 #include <boost/iostreams/filtering_streambuf.hpp>
 #include <boost/iostreams/filter/bzip2.hpp>
@@ -12,7 +13,6 @@ using namespace std;
 class datread {
  public:
   datread (const unsigned int& _blocksize, ostream *_log=NULL);
-  ~datread ();
   int openFile (const string& filename);
   enum class Format {DAT, EDAT, SDAT};
   void * getHeader (const string& headerid);
@@ -25,7 +25,7 @@ class datread {
   ifstream infile;
   Format format;
   string parastring;
-  boost::iostreams::filtering_istreambuf *inbuffer;
+  unique_ptr<boost::iostreams::filtering_istreambuf> inbuffer;
   ostream * const log;
   int readDataToMem (char *tmpData, long unsigned int dataSize);
   string filename;
index 73e3497aeb51b1b71962bd6a6eb6dec1d286e538..36d9fb00877098956293a61945fc7bf627eddf35 100644 (file)
@@ -144,6 +144,8 @@ void o815::mainLoop() {
     *out->log << ">" << endl << flush;
 
     Sim->_newParas();
+
+    Sim->_resetConfig();
     
     progress measProg(comargs.nmeas);
 
index 5873a14cf90032783210a45ea2e925237d8f394d..05053871c1ca302e58625c46639b10e34d8fb4c0 100644 (file)
@@ -45,6 +45,7 @@ class o815 {
     void nextConfig();
     char *confMem;
     virtual void _newParas()=0;
+    virtual void _resetConfig()=0;
     int nequi, nskip;
   private:
     virtual void _makeSweep()=0;