[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