/* Copyright © 2006, FSL Technologies Ltd. $Revision: 10 $ $Date: 18/08/06 12:01 $ */ #ifndef PLAN_HPP #define PLAN_HPP #pragma once #define PLAN_HPP_ARCHIVE L"$Archive: /FOST.3/vss2svn/plan.hpp $" #define PLAN_HPP_REVISION L"$Revision: 10 $" #define PLAN_HPP_DATE L"$Date: 18/08/06 12:01 $" #include "event.hpp" namespace Migrate { class Manipulator; class Plan { public: Plan(); // Find the current file and directory set void history(); // Sort the events that occur at the same time void sort(); // Perform some basic planning void doplanning(); // Replay the events void replay(); // Translate file content void translate(); // Display some basic information about the plan void report( FSLib::YAML::Record & ) const; private: // The root directory and the temp directory boost::shared_ptr< Directory > root; boost::shared_ptr< Directory > vss_deleted; // The events pre-sorting std::map< TimeStamp, std::map< unsigned int, std::list< boost::shared_ptr< Event > > > > events; void getevents( boost::shared_ptr< File > ); // Populates the events from a single file // The events in order that they will be planned std::map< TimeStamp, boost::shared_ptr< Event >, std::greater< TimeStamp > > plan; // The events to be run std::map< TimeStamp, boost::shared_ptr< Event > > execute; unsigned int projects, files; std::map< wstring, std::pair< std::map< TimeStamp, boost::shared_ptr< Event > >::size_type, std::map< TimeStamp, boost::shared_ptr< Event > >::size_type > > executed; }; } #endif // PLAN_HPP /* $History: plan.hpp $ * * ***************** Version 10 ***************** * User: Kirit Date: 18/08/06 Time: 12:01 * Updated in $/FOST.3/vss2svn * Added skeleton for file translation. * * ***************** Version 9 ***************** * User: Kirit Date: 14/08/06 Time: 8:50 * Updated in $/FOST.3/vss2svn * Updated reporting of results and added fetch of auditable versions of * VSS and SVN data. * * ***************** Version 8 ***************** * User: Kirit Date: 3/08/06 Time: 13:16 * Updated in $/FOST.3/vss2svn * Now starting to migrate to SVN. * * ***************** Version 7 ***************** * User: Kirit Date: 3/08/06 Time: 11:12 * Updated in $/FOST.3/vss2svn * Need to sort a problem with the first mkdir, but want to implement some * caching of the output results from VSS to speed up execution. * * ***************** Version 6 ***************** * User: Kirit Date: 3/08/06 Time: 10:20 * Updated in $/FOST.3/vss2svn * Getting some variance in outcome due to differences in execution order. * Need to lock down all execution orderings from run to run. * * ***************** Version 5 ***************** * User: Kirit Date: 31/07/06 Time: 13:16 * Updated in $/FOST.3/vss2svn * Still can't get the sort order right because VSS sorts differently * depending on what is being done. * * ***************** Version 4 ***************** * User: Kirit Date: 29/07/06 Time: 11:29 * Updated in $/FOST.3/vss2svn * Executes properly on test database. * * ***************** Version 3 ***************** * User: Kirit Date: 28/07/06 Time: 17:38 * Updated in $/FOST.3/vss2svn * Replays directory commmands. * * ***************** Version 2 ***************** * User: Kirit Date: 27/07/06 Time: 12:53 * Updated in $/FOST.3/vss2svn * Version compiles. Can now start to restructure directory handling. * * ***************** Version 1 ***************** * User: Kirit Date: 27/07/06 Time: 12:15 * Created in $/FOST.3/vss2svn * Added new source files for restructuring. */