[Avida-SVN] r3119 - in branches/matt/PairwiseEpistasis: Avida.xcodeproj source/actions source/main

ruppmatt at myxo.css.msu.edu ruppmatt at myxo.css.msu.edu
Thu Jan 15 09:28:05 PST 2009


Author: ruppmatt
Date: 2009-01-15 12:28:05 -0500 (Thu, 15 Jan 2009)
New Revision: 3119

Modified:
   branches/matt/PairwiseEpistasis/Avida.xcodeproj/project.pbxproj
   branches/matt/PairwiseEpistasis/source/actions/DriverActions.cc
   branches/matt/PairwiseEpistasis/source/main/cWorld.h
Log:
Added ability to change data directory via action.  This will close all existing files and invalidate other data file manager identifiers.  Extreme care must be used when executing this action.

Modified: branches/matt/PairwiseEpistasis/Avida.xcodeproj/project.pbxproj
===================================================================
--- branches/matt/PairwiseEpistasis/Avida.xcodeproj/project.pbxproj	2009-01-15 17:27:47 UTC (rev 3118)
+++ branches/matt/PairwiseEpistasis/Avida.xcodeproj/project.pbxproj	2009-01-15 17:28:05 UTC (rev 3119)
@@ -1556,6 +1556,7 @@
 		DCC30C4D0762532C008F7A48 /* Project object */ = {
 			isa = PBXProject;
 			buildConfigurationList = 702442D70859E0B00059BD9B /* Build configuration list for PBXProject "Avida" */;
+			compatibilityVersion = "Xcode 2.4";
 			hasScannedForEncodings = 0;
 			mainGroup = DCC30C490762532C008F7A48;
 			productRefGroup = DCC3164E07626CF3008F7A48 /* Products */;

Modified: branches/matt/PairwiseEpistasis/source/actions/DriverActions.cc
===================================================================
--- branches/matt/PairwiseEpistasis/source/actions/DriverActions.cc	2009-01-15 17:27:47 UTC (rev 3118)
+++ branches/matt/PairwiseEpistasis/source/actions/DriverActions.cc	2009-01-15 17:28:05 UTC (rev 3119)
@@ -81,11 +81,28 @@
 };
 
 
+class cActionSetDataDir : public cAction
+  {
+  private:
+    cString m_dir;
+  public:
+    cActionSetDataDir(cWorld* world, const cString& args) : cAction(world, args)
+    { 
+      cString largs(args);
+      m_dir = (largs.GetSize()) ? largs.PopWord() : "data";
+    }
+    static const cString GetDescription() { return "Arguments: <string directory [default=data]>"; }
+    void Process(cAvidaContext& ctx) { m_world->ResetDataFileManager(m_dir); }
+  };
+
+
+
 void RegisterDriverActions(cActionLibrary* action_lib)
 {
   action_lib->Register<cActionExit>("Exit");
   action_lib->Register<cActionExitAveLineageLabelGreater>("ExitAveLineageLabelGreater");
   action_lib->Register<cActionExitAveLineageLabelLess>("ExitAveLineageLabelLess");
+  action_lib->Register<cActionSetDataDir>("SetDataDir");
 
   // @DMB - The following actions are DEPRECATED aliases - These will be removed in 2.7.
   action_lib->Register<cActionExit>("exit");

Modified: branches/matt/PairwiseEpistasis/source/main/cWorld.h
===================================================================
--- branches/matt/PairwiseEpistasis/source/main/cWorld.h	2009-01-15 17:27:47 UTC (rev 3118)
+++ branches/matt/PairwiseEpistasis/source/main/cWorld.h	2009-01-15 17:28:05 UTC (rev 3119)
@@ -115,7 +115,8 @@
   // Access to Data File Manager
   std::ofstream& GetDataFileOFStream(const cString& fname) { return m_data_mgr->GetOFStream(fname); }
   cDataFile& GetDataFile(const cString& fname) { return m_data_mgr->Get(fname); }  
-
+  void ResetDataFileManager(const cString dir);  
+  
   // Config Dependent Modes
   bool GetTestOnDivide() const { return m_test_on_div; }
   bool GetTestSterilize() const { return m_test_sterilize; }




More information about the Avida-cvs mailing list