[Avida-cvs] [avida-svn] r714 - development/source/tools

kaben@myxo.css.msu.edu kaben at myxo.css.msu.edu
Sat May 27 03:25:09 PDT 2006


Author: kaben
Date: 2006-05-27 06:25:08 -0400 (Sat, 27 May 2006)
New Revision: 714

Modified:
   development/source/tools/cDataFile.h
Log:

Added memory tracking via tMemTrack. Added serialization that tracks
last known write position in data file.



Modified: development/source/tools/cDataFile.h
===================================================================
--- development/source/tools/cDataFile.h	2006-05-27 10:24:15 UTC (rev 713)
+++ development/source/tools/cDataFile.h	2006-05-27 10:25:08 UTC (rev 714)
@@ -16,6 +16,11 @@
 #ifndef cString_h
 #include "cString.h"
 #endif
+#if USE_tMemTrack
+# ifndef tMemTrack_h
+#  include "tMemTrack.h"
+# endif
+#endif
 
 /**
  * This class encapsulates file handling for the class @ref cDataFileManager.
@@ -25,6 +30,9 @@
 
 class cDataFile
 {
+#if USE_tMemTrack
+  tMemTrack<cDataFile> mt;
+#endif
 private:
   cString m_name;
   cString m_data;
@@ -149,26 +157,19 @@
    **/
   template<class Archive>
   void save(Archive & a, const unsigned int version) const {
-    /*
-    __is_open and __verbose are workarounds for bool-serialization bugs.
-    @kgn
-    */
-    int __m_descr_written = (m_descr_written == false)?(0):(1);
-    //int __is_open = (m_fp.is_open() == false)?(0):(1);
-
     a.ArkvObj("m_name", m_name);
     a.ArkvObj("m_data", m_data);
     a.ArkvObj("m_descr", m_descr);
     a.ArkvObj("num_cols", num_cols);
+
+    int __m_descr_written = (m_descr_written == false)?(0):(1);
     a.ArkvObj("m_descr_written", __m_descr_written);
-    //a.ArkvObj("is_open", __is_open);
-    //if(__is_open){
-    //  /*
-    //  If the file is open, record current read-position.
-    //  */
-    //  int position = m_fp.rdbuf()->pubseekoff(0,std::ios::cur);
-    //  a.ArkvObj("position", position);
-    //}
+
+    ///*
+    //Record current write-position.
+    //*/
+    //int position = m_fp.rdbuf()->pubseekoff(0,std::ios::cur);
+    //a.ArkvObj("position", position);
   }
 
   /**
@@ -176,29 +177,26 @@
    **/
   template<class Archive>
   void load(Archive & a, const unsigned int version){
-    int __m_descr_written;
-    //int __is_open;
-
     a.ArkvObj("m_name", m_name);
     a.ArkvObj("m_data", m_data);
     a.ArkvObj("m_descr", m_descr);
     a.ArkvObj("num_cols", num_cols);
-    a.ArkvObj("m_descr_written", __m_descr_written);
-    //a.ArkvObj("is_open", __is_open);
 
+    int __m_descr_written;
+    a.ArkvObj("m_descr_written", __m_descr_written);
     m_descr_written = (__m_descr_written == 0)?(false):(true);
 
-    //if(__is_open){
-    //  /*
-    //  If the file is open, record current read-position.
-    //  */
-    //  int position;
-    //  a.ArkvObj("position", position);
-    //  m_fp.open(m_name, std::ios::out|std::ios::app);
-    //  m_fp.rdbuf()->pubseekpos(position);
-    //}
-
+    /*
+    open file in write/append mode.
+    */
     m_fp.open(m_name, std::ios::out|std::ios::app);
+
+    ///*
+    //Restore write-position.
+    //*/
+    //int position;
+    //a.ArkvObj("position", position);
+    //m_fp.rdbuf()->pubseekpos(position);
   }
   
   /**




More information about the Avida-cvs mailing list