Thread: [Echempp-devel] Experiment/Experiment Doxyfile, 1.5, 1.6 Experiment.hpp, 1.6, 1.7 Makefile.am, 1.13
Status: Beta
Brought to you by:
berndspeiser
|
From: beeblbrox <bee...@us...> - 2007-12-19 13:31:33
|
Update of /cvsroot/echempp/Experiment/Experiment In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv1483/Experiment/Experiment Modified Files: Doxyfile Experiment.hpp Makefile.am Technique.h Technique.hpp Log Message: New Experiment classes. Index: Doxyfile =================================================================== RCS file: /cvsroot/echempp/Experiment/Experiment/Doxyfile,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Doxyfile 30 Nov 2006 12:35:19 -0000 1.5 --- Doxyfile 19 Dec 2007 13:31:29 -0000 1.6 *************** *** 355,359 **** # *.h++ *.idl *.odl ! FILE_PATTERNS = *.cc *.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories --- 355,359 ---- # *.h++ *.idl *.odl ! FILE_PATTERNS = *.cpp *.hpp # The RECURSIVE tag can be used to turn specify whether or not subdirectories Index: Experiment.hpp =================================================================== RCS file: /cvsroot/echempp/Experiment/Experiment/Experiment.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Experiment.hpp 17 May 2007 14:02:41 -0000 1.6 --- Experiment.hpp 19 Dec 2007 13:31:29 -0000 1.7 *************** *** 29,32 **** --- 29,37 ---- #define __EXPERIMENT_HPP__ + // BSUtilities includes + #include "SerializationTools.h" + #include "TemplateTools.h" + #include "TypeToName.h" + // STL includes #include <vector> *************** *** 37,40 **** --- 42,53 ---- #include <typeinfo> + // Loki includes + #include <loki/LokiTypeInfo.h> + + // Local includes + #include "Data/Data.hpp" + #include "ExcitationFunction/excitationFunction.hpp" + #include "Experiment/Technique.hpp" + // Boost includes #include <boost/serialization/serialization.hpp> *************** *** 44,63 **** #include <boost/serialization/utility.hpp> #include <boost/serialization/vector.hpp> - #include <boost/serialization/export.hpp> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/posix_time/time_serialize.hpp> - // Loki includes - #include <loki/LokiTypeInfo.h> - - // BSUtilities includes - #include "TemplateTools.h" - #include "SerializationTools.h" - #include "TypeToName.h" - - // Local includes - #include "ExcitationFunction/excitationFunction.hpp" - #include "Experiment/Technique.hpp" - namespace experiment { --- 57,63 ---- *************** *** 69,93 **** } template<> ! const std::string type2name<quantity::CelsiusTemperature>() ! { ! return "CelsiusTemperature"; ! } ! template<> ! const std::string type2name<quantity::Time>() ! { ! return "Time"; ! } ! template<> ! const std::string type2name<quantity::ElectricPotential>() ! { ! return "ElectricPotential"; ! } ! template<> ! const std::string type2name<quantity::ElectricCurrent>() ! { ! return "ElectricCurrent"; ! } ! template<> ! const std::string type2name<Loki::EmptyType>() { return "EmptyType"; --- 69,73 ---- } template<> ! inline const std::string type2name<Loki::EmptyType>() { return "EmptyType"; *************** *** 178,221 **** }; ! //! Base class for all experiments. class Experiment { public: ! Experiment() { title_ = "Insert Experiment title"; parent_ = NULL; } ! Experiment(const std::string title) : title_(title) { parent_ = NULL; } virtual ~Experiment() {} virtual void perform() = 0; virtual void add(Experiment* e) = 0; virtual void remove(const size_t idx) = 0; ! Experiment* get_parent() { return parent_; } ! void set_parent(Experiment* parent) { parent_ = parent; } virtual const Loki::TypeInfo get_independent_type() const = 0; virtual const Loki::TypeInfo get_dependent_type() const = 0; virtual const Loki::TypeInfo get_result_type() const = 0; virtual const Loki::TypeInfo get_realism_type() const = 0; virtual const Loki::TypeInfo get_dynamics_type() const = 0; virtual const bool has_matching_independent_range(Experiment* e) const = 0; virtual const bool is_compound() const = 0; const std::string& get_title() const { return title_; } void set_title(const std::string& title) { title_ = title; } virtual const bool equal(Experiment* e) const { return title_ == e->get_title(); } private: std::string title_; - Experiment* parent_; friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ! ar & BOOST_SERIALIZATION_NVP(title_) ! & BOOST_SERIALIZATION_NVP(parent_); } }; ! //! Base class for all atomic experiments. //! Atomic experiments are used to represent self-contained ! //! experiments that are not further divisible. template<class Tech> class Atomic : public Experiment --- 158,241 ---- }; ! //! Abstract base class for all experiments. Experiment implements the ! //! composite pattern. Concrete implementations include Action, Induced, ! //! Observation, Homogeneous, Sequential and Simultaneous. class Experiment { public: ! //! Create new Experiment with no title. ! Experiment() { title_ = "Insert Experiment title";} ! //! Create new Experiment with the supplied title. ! Experiment(const std::string title) : title_(title) {} ! //! Make a deep copy (clone) of the Experiment. ! virtual Experiment* clone() = 0; ! //! Destroy Experiment. virtual ~Experiment() {} + //! Virtual function to perform the Experiment. If the Experiment is a Compound + //! this function will be called for all elements of the Compound. virtual void perform() = 0; + //! Add an Experiment to a Compound. This will throw ExperimentException when called + //! for Atomic experiments. virtual void add(Experiment* e) = 0; + //! Remove an Experiment from the Compound. This will throw ExperimentException when called + //! for Atomic experiments. virtual void remove(const size_t idx) = 0; ! //! Retrieve an Experiment from the Compound. This will throw ExperimentException when called ! // for Atomic experiments. ! virtual Experiment* get(const size_t idx) = 0; ! //! Number of Elements in Compound. This will throw ExperimentException when called ! //! for Atomic experiments. ! virtual size_t size() const = 0; ! //! Determine the type of the independent variable. Needed for runtime checks performed ! //! on Compound Experiments. virtual const Loki::TypeInfo get_independent_type() const = 0; + //! Determine the type of the dependent variable. Needed for runtime checks performed + //! on Compound Experiments. virtual const Loki::TypeInfo get_dependent_type() const = 0; + //! Determine the type of the result variable. Needed for runtime checks performed + //! on Compound Experiments. virtual const Loki::TypeInfo get_result_type() const = 0; + //! Determine Realism type. Needed for runtime checks performed + //! on Compound Experiments. virtual const Loki::TypeInfo get_realism_type() const = 0; + //! Determine Dynamics type. Needed for runtime checks performed + //! on Compound Experiments. virtual const Loki::TypeInfo get_dynamics_type() const = 0; + //! Check whether the ranges of the independent variable match. + //! Needed for runtime checks performed on Compound Experiments. virtual const bool has_matching_independent_range(Experiment* e) const = 0; + //! Determine whether the current Experiment is Compound of Atomic. virtual const bool is_compound() const = 0; + //! Retrieve the Experiment title. const std::string& get_title() const { return title_; } + //! Set the Experiment title. void set_title(const std::string& title) { title_ = title; } + //! Polymorphic comparison of Experiments. virtual const bool equal(Experiment* e) const { return title_ == e->get_title(); } + //! Retrieve the condition data. + virtual ConditionData* get_cond_data() const { return NULL; } + //! Set condition data. + virtual void set_cond_data(ConditionData* cd) {} + //! Retrieve the measurement data. + virtual MeasurementData* get_meas_data() const { return NULL; } + //! Set the measurement data. + virtual void set_meas_data(MeasurementData* md) {} private: std::string title_; friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ! ar & BOOST_SERIALIZATION_NVP(title_); } }; ! //! Abstract base class for all atomic experiments. //! Atomic experiments are used to represent self-contained ! //! experiments that are not further divisible. Concrete ! //! implementations include Action, Induced and Observation. template<class Tech> class Atomic : public Experiment *************** *** 247,250 **** --- 267,278 ---- throw ExperimentException("Removing from Atomic not possible!"); } + Experiment* get(const size_t idx) + { + throw ExperimentException("Get from Atomic not possible!"); + } + size_t size() const + { + throw ExperimentException("Size for Atomic not possible!"); + } private: friend class boost::serialization::access; *************** *** 281,291 **** // TODO Use Segment Type as well return "Action_" + type2name<Realism>() + "_" ! + type2name<Dynamics>() + "_" + type2name<I>() + "_" + type2name<D>() + "_" + type2name<R>(); } ! BSUtilities::AutoRegistor<Action<Tech> > reg; static const std::string GUID; Action() {} Action(const std::string title) : _AtomicBase(title) {} virtual ~Action() {} virtual void perform() {} --- 309,326 ---- // TODO Use Segment Type as well return "Action_" + type2name<Realism>() + "_" ! + type2name<Dynamics>() + "_" + I::create_guid() + "_" + type2name<D>() + "_" + type2name<R>(); } ! BSUtilities::Serialization::AutoRegistor<Action<Tech> > reg; static const std::string GUID; Action() {} Action(const std::string title) : _AtomicBase(title) {} + Action(const Action& a) + { + execution_start = a.execution_start; + execution_end = a.execution_end; + exc_func = a.exc_func; + } + Action* clone() { return new Action(*this); } virtual ~Action() {} virtual void perform() {} *************** *** 306,325 **** --- 341,365 ---- return info; } + //! Retrieve the time when execution started. const boost::posix_time::ptime get_execution_start() const { return execution_start; } + //! Set the time when execution started. void set_execution_start(const boost::posix_time::ptime& pt) { execution_start = pt; } + //! Retrieve the time when execution ended. const boost::posix_time::ptime get_execution_end() const { return execution_end; } + //! Set the time when execution ended. void set_execution_end(const boost::posix_time::ptime& pt) { execution_end = pt; } + //! Retrieve the ExcitationFunction. const ExcitationFunctions::SDIExcitationFunction<D,I,S> get_exc_func() const *************** *** 327,330 **** --- 367,371 ---- return exc_func; } + //! Set the ExcitationFunction. void set_exc_func(const ExcitationFunctions::SDIExcitationFunction< D, I, S>& ef) *************** *** 374,385 **** template<class Realism, ! class Dynamics, ! class I, ! class D, ! class R, ! template<class, class> class S> ! const std::string Action<Technique<Realism,Dynamics,I,D,R,S> >::GUID = ! Action<Technique<Realism,Dynamics,I,D,R,S> >::create_guid(); ! //! Class to represent induced experiments. //! Induced experiments influence the system like Action but --- 415,426 ---- template<class Realism, ! class Dynamics, ! class I, ! class D, ! class R, ! template<class, class> class S> ! const std::string Action<Technique<Realism,Dynamics,I,D,R,S> >::GUID = ! Action<Technique<Realism,Dynamics,I,D,R,S> >::create_guid(); ! //! Class to represent induced experiments. //! Induced experiments influence the system like Action but *************** *** 410,417 **** + type2name<D>() + "_" + type2name<R>(); } ! BSUtilities::AutoRegistor<Induced<Tech> > reg; static const std::string GUID; ! Induced() {}; ! virtual ~Induced() { std::cout << "Called ~Induced" << std::endl; }; virtual void perform() {}; // RTTI --- 451,475 ---- + type2name<D>() + "_" + type2name<R>(); } ! BSUtilities::Serialization::AutoRegistor<Induced<Tech> > reg; static const std::string GUID; ! Induced() { cond_data = NULL; meas_data = NULL; }; ! Induced(ConditionData* cd, MeasurementData* md) ! : cond_data(cd), meas_data(md) {}; ! Induced(const Induced& i) ! { ! induction_start = i.induction_start; ! induction_end = i.induction_end; ! exc_func = i.exc_func; ! cond_data = i.cond_data->clone(); ! meas_data = i.meas_data->clone(); ! } ! Induced* clone() { return new Induced(*this); } ! virtual ~Induced() ! { ! if(cond_data != NULL) ! delete cond_data; ! if(meas_data != NULL) ! delete meas_data; ! } virtual void perform() {}; // RTTI *************** *** 483,486 **** --- 541,548 ---- exc_func = ef; } + ConditionData* get_cond_data() const { return cond_data; } + void set_cond_data(ConditionData* cd) { cond_data = cd; } + MeasurementData* get_meas_data() const { return meas_data; } + void set_meas_data(MeasurementData* md) { meas_data = md; } private: friend class boost::serialization::access; *************** *** 490,494 **** ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(_AtomicBase) & BOOST_SERIALIZATION_NVP(induction_start) ! & BOOST_SERIALIZATION_NVP(induction_end); // TODO: serialize exc_func } --- 552,558 ---- ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(_AtomicBase) & BOOST_SERIALIZATION_NVP(induction_start) ! & BOOST_SERIALIZATION_NVP(induction_end) ! & BOOST_SERIALIZATION_NVP(cond_data) ! & BOOST_SERIALIZATION_NVP(meas_data); // TODO: serialize exc_func } *************** *** 497,501 **** ExcitationFunctions::SDIExcitationFunction<D, I, S> exc_func; // TODO: MeasurementData ? ! R result; }; --- 561,566 ---- ExcitationFunctions::SDIExcitationFunction<D, I, S> exc_func; // TODO: MeasurementData ? ! ConditionData *cond_data; ! MeasurementData *meas_data; }; *************** *** 515,520 **** //! \sa Action //! \sa Induced ! template<class Tech> ! class Observation : Atomic<Tech> {}; // partial template specialization to enforce constraint, --- 580,584 ---- //! \sa Action //! \sa Induced ! template<class Tech> class Observation : public Atomic<Tech> {}; // partial template specialization to enforce constraint, *************** *** 535,546 **** + type2name<I>() + "_" + type2name<R>(); } ! BSUtilities::AutoRegistor<Observation<Tech> > reg; static const std::string GUID; ! Observation() {}; typedef Observation<Tech> _Observation; typedef Atomic<Tech > _AtomicBase; ! Observation(const I start, const I end) ! : start_(start), end_(end) {}; ! virtual ~Observation() { std::cout << "Called ~Observation" << std::endl; }; virtual void perform() {}; // RTTI --- 599,623 ---- + type2name<I>() + "_" + type2name<R>(); } ! BSUtilities::Serialization::AutoRegistor<Observation<Tech> > reg; static const std::string GUID; ! Observation() { cond_data = NULL; }; typedef Observation<Tech> _Observation; typedef Atomic<Tech > _AtomicBase; ! Observation(const I start, const I end, ConditionData* cd=NULL) ! : start_(start), end_(end), cond_data(cd) {}; ! Observation(const Observation& o) ! { ! recording_start_ = o.recording_start_; ! recording_end_ = o.recording_end_; ! start_ = o.start_; ! end_ = o.end_; ! cond_data = o.cond_data->clone(); ! } ! Observation* clone() { return new Observation(*this); } ! virtual ~Observation() ! { ! if(cond_data != NULL) ! delete cond_data; ! } virtual void perform() {}; // RTTI *************** *** 569,592 **** --- 646,685 ---- return false; } + //! Retrieve time when recording started. const boost::posix_time::ptime get_recording_start() const { return recording_start_; } + //! Set time when recording started. void set_recording_start(const boost::posix_time::ptime& pt) { recording_start_ = pt; } + //! Retrieve time when recording ended. const boost::posix_time::ptime get_recording_end() const { return recording_end_; } + //! Set time when recording ended. void set_recording_end(const boost::posix_time::ptime& pt) { recording_end_ = pt; } + //! Get the value of the independent variable at the + //! beginning of the observation const I get_start() const { return start_; } + //! Set the value of the independent variable at the + //! beginning of the observation void set_start(const I start) { start_ = start; } + //! Get the value of the independent variable at the + //! end of the observation const I get_end() const { return end_; } + //! Set the value of the independent variable at the + //! end of the observation void set_end(const I end) { end_ = end; } + //! Get the ConditionData. + ConditionData* get_cond_data() const { return cond_data; } + //! Set the ConditionData. + void set_cond_data(ConditionData* cd) { cond_data = cd; } private: friend class boost::serialization::access; *************** *** 596,602 **** ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(_AtomicBase) & BOOST_SERIALIZATION_NVP(recording_start_) ! & BOOST_SERIALIZATION_NVP(recording_end_); ! // & BOOST_SERIALIZATION_NVP(start_) ! // & BOOST_SERIALIZATION_NVP(end_); } boost::posix_time::ptime recording_start_; --- 689,696 ---- ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(_AtomicBase) & BOOST_SERIALIZATION_NVP(recording_start_) ! & BOOST_SERIALIZATION_NVP(recording_end_) ! & BOOST_SERIALIZATION_NVP(start_) ! & BOOST_SERIALIZATION_NVP(end_) ! & BOOST_SERIALIZATION_NVP(cond_data); } boost::posix_time::ptime recording_start_; *************** *** 604,608 **** I start_; I end_; ! // TODO: insert Conditions, StateData }; --- 698,703 ---- I start_; I end_; ! ConditionData *cond_data; ! // TODO: insert StateData? }; *************** *** 631,635 **** + type2name<R>(); } ! BSUtilities::AutoRegistor<Observation<Tech> > reg; static const std::string GUID; --- 726,730 ---- + type2name<R>(); } ! BSUtilities::Serialization::AutoRegistor<Observation<Tech> > reg; static const std::string GUID; *************** *** 637,641 **** typedef Atomic<Tech> _AtomicBase; Observation() {}; ! virtual ~Observation() { std::cout << "Called ~Observation" << std::endl; }; virtual void perform() {}; // RTTI --- 732,742 ---- typedef Atomic<Tech> _AtomicBase; Observation() {}; ! Observation(const Observation& o) ! { ! recording_start_ = o.recording_start_; ! recording_end_ = o.recording_end_; ! } ! Observation* clone() { return new Observation(*this); } ! virtual ~Observation() {}; virtual void perform() {}; // RTTI *************** *** 659,662 **** --- 760,783 ---- return false; } + //! Retrieve time when recording started. + const boost::posix_time::ptime get_recording_start() const + { + return recording_start_; + } + //! Set time when recording started. + void set_recording_start(const boost::posix_time::ptime& pt) + { + recording_start_ = pt; + } + //! Retrieve time when recording ended. + const boost::posix_time::ptime get_recording_end() const + { + return recording_end_; + } + //! Set time when recording ended. + void set_recording_end(const boost::posix_time::ptime& pt) + { + recording_end_ = pt; + } private: friend class boost::serialization::access; *************** *** 665,674 **** { ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(_AtomicBase) ! & BOOST_SERIALIZATION_NVP(recording_start) ! & BOOST_SERIALIZATION_NVP(recording_end); } ! boost::posix_time::ptime recording_start; ! boost::posix_time::ptime recording_end; ! // TODO: insert Conditions, StateData }; --- 786,795 ---- { ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(_AtomicBase) ! & BOOST_SERIALIZATION_NVP(recording_start_) ! & BOOST_SERIALIZATION_NVP(recording_end_); } ! boost::posix_time::ptime recording_start_; ! boost::posix_time::ptime recording_end_; ! // TODO: insert StateData }; *************** *** 687,691 **** public: static const std::string GUID; ! BSUtilities::AutoRegistor<Compound> reg; virtual ~Compound() { --- 808,824 ---- public: static const std::string GUID; ! BSUtilities::Serialization::AutoRegistor<Compound> reg; ! Compound() {} ! Compound(const Compound& c) ! { ! for(unsigned int i = 0; i <= c.elements.size(); ++i) ! { ! elements.push_back((c.elements[i])->clone()); ! } ! } ! Compound* clone() ! { ! return new Compound(*this); ! } virtual ~Compound() { *************** *** 700,704 **** virtual void add(Experiment* e) { - e->set_parent(this); elements.push_back(e); } --- 833,836 ---- *************** *** 710,714 **** elements.erase(elements.begin()+idx); } ! int num_elements() const { return elements.size(); --- 842,850 ---- elements.erase(elements.begin()+idx); } ! Experiment* get(const size_t idx) ! { ! return elements[idx]; ! } ! size_t size() const { return elements.size(); *************** *** 719,726 **** --- 855,866 ---- } typedef std::vector<Experiment*>::const_iterator const_iterator; + //! Return Iterator that points to the start + //! of Compound const_iterator begin() const { return elements.begin(); } + //! Return Iterator that points to the end + //! of Compound const_iterator end() const { *************** *** 789,793 **** if(cp != 0) { ! if(num_elements() != cp->num_elements()) return false; const_iterator i = begin(); --- 929,933 ---- if(cp != 0) { ! if(size() != cp->size()) return false; const_iterator i = begin(); *************** *** 805,809 **** if(cp != 0) { ! if(num_elements() != cp->num_elements()) return false; const_iterator i = begin(); --- 945,949 ---- if(cp != 0) { ! if(size() != cp->size()) return false; const_iterator i = begin(); *************** *** 826,830 **** std::vector<Experiment* > elements; }; - const std::string Compound::GUID = "Compound"; //! Class for collection of experiments. --- 966,969 ---- *************** *** 840,844 **** // No restricton on add, just inherit the one from Compound static const std::string GUID; ! BSUtilities::AutoRegistor<Collection> reg; private: friend class boost::serialization::access; --- 979,983 ---- // No restricton on add, just inherit the one from Compound static const std::string GUID; ! BSUtilities::Serialization::AutoRegistor<Collection> reg; private: friend class boost::serialization::access; *************** *** 849,853 **** } }; - const std::string Collection::GUID = "Collection"; //! Class for homogeneous composition of experiments. --- 988,991 ---- *************** *** 863,867 **** public: static const std::string GUID; ! BSUtilities::AutoRegistor<Homogeneous> reg; virtual ~Homogeneous() {}; void add(Experiment* e) --- 1001,1005 ---- public: static const std::string GUID; ! BSUtilities::Serialization::AutoRegistor<Homogeneous> reg; virtual ~Homogeneous() {}; void add(Experiment* e) *************** *** 878,882 **** Compound* cp1 = dynamic_cast<Compound*>(e); Compound* cp2 = dynamic_cast<Compound*>(ep); ! if(cp1->num_elements() != cp2->num_elements()) throw ExperimentException("Cannot add element because number of elements in Compound differ!"); } --- 1016,1020 ---- Compound* cp1 = dynamic_cast<Compound*>(e); Compound* cp2 = dynamic_cast<Compound*>(ep); ! if(cp1->size() != cp2->size()) throw ExperimentException("Cannot add element because number of elements in Compound differ!"); } *************** *** 901,905 **** } }; - const std::string Homogeneous::GUID = "Homogeneous"; //! Class for sequential composition of experiments. --- 1039,1042 ---- *************** *** 913,917 **** public: static const std::string GUID; ! BSUtilities::AutoRegistor<Sequential> reg; virtual ~Sequential() {}; void add(Experiment* e) --- 1050,1054 ---- public: static const std::string GUID; ! BSUtilities::Serialization::AutoRegistor<Sequential> reg; virtual ~Sequential() {}; void add(Experiment* e) *************** *** 933,937 **** } }; - const std::string Sequential::GUID = "Sequential"; //! Class for simultaneous composition of experiments. --- 1070,1073 ---- *************** *** 945,949 **** public: static const std::string GUID; ! BSUtilities::AutoRegistor<Simultaneous> reg; virtual ~Simultaneous() {}; void add(Experiment* e) --- 1081,1085 ---- public: static const std::string GUID; ! BSUtilities::Serialization::AutoRegistor<Simultaneous> reg; virtual ~Simultaneous() {}; void add(Experiment* e) *************** *** 968,973 **** } }; - const std::string Simultaneous::GUID = "Simultaneous"; namespace cv { --- 1104,1109 ---- } }; + //! Techniques for experiments related to cyclic voltammetry namespace cv { *************** *** 993,996 **** --- 1129,1133 ---- ExcitationFunctions::Segments::LinearSegment> DualDynamicTech; + typedef Induced<SimulatedDynamicTech> SimInduced; } // end namespace cv *************** *** 1098,1101 **** --- 1235,1239 ---- } + // for tesing, do not use typedef Action<internal::AT1> RealDynamicEPTAction; typedef Action<internal::AT2> SimulatedDynamicEPTAction; *************** *** 1119,1169 **** } // end namespace experiment - // namespace boost{ - // namespace serialization{ - // template<> - // struct is_abstract<experiment::Experiment> - // { - // typedef mpl::bool_<true> type; - // BOOST_STATIC_CONSTANT(bool, value = true); - // }; - // } - // } - // BOOST_IS_ABSTRACT(experiment::Experiment) - // BOOST_IS_ABSTRACT(experiment::RealDynamicAtomic) - // BOOST_IS_ABSTRACT(experiment::RealStaticAtomic) - // BOOST_IS_ABSTRACT(experiment::SimulatedDynamicAtomic) - // BOOST_IS_ABSTRACT(experiment::SimulatedStaticAtomic) - // BOOST_IS_ABSTRACT(experiment::DualDynamicAtomic) - // BOOST_IS_ABSTRACT(experiment::DualStaticAtomic) - // BOOST_CLASS_EXPORT_GUID(experiment::Experiment, "experiment::Experiment") - // BOOST_CLASS_EXPORT_GUID(experiment::RealDynamicAtomic, - // "experiment::RealDynamicAtomic") - // BOOST_CLASS_EXPORT_GUID(experiment::RealStaticAtomic, - // "experiment::RealDynamicAtomic") - // BOOST_CLASS_EXPORT_GUID(experiment::SimulatedDynamicAtomic, - // "experiment::RealDynamicAtomic") - // BOOST_CLASS_EXPORT_GUID(experiment::SimulatedStaticAtomic, - // "experiment::RealDynamicAtomic") - // BOOST_CLASS_EXPORT_GUID(experiment::DualDynamicAtomic, - // "experiment::RealDynamicAtomic") - // BOOST_CLASS_EXPORT_GUID(experiment::DualStaticAtomic, - // "experiment::RealDynamicAtomic") - - // BOOST_CLASS_EXPORT(experiment::RealDynamicEPTAction) - // BOOST_CLASS_EXPORT(experiment::SimulatedDynamicEPTAction) - // BOOST_CLASS_EXPORT(experiment::DualDynamicEPTAction) - // BOOST_CLASS_EXPORT(experiment::RealStaticEPTAction) - // BOOST_CLASS_EXPORT(experiment::SimulatedStaticEPTAction) - // BOOST_CLASS_EXPORT(experiment::DualStaticEPTAction) - // BOOST_CLASS_EXPORT(experiment::RealDynamicEPTempAction) - // BOOST_CLASS_EXPORT(experiment::RealDynamicECTAction) - // BOOST_CLASS_EXPORT(experiment::RealDynamicTEPObservation) - // BOOST_CLASS_EXPORT(experiment::RealDynamicEPTInduced) - - // BOOST_CLASS_EXPORT_GUID(experiment::Compound, "experiment::Compound") - // BOOST_CLASS_EXPORT_GUID(experiment::Collection, "experiment::Collection") - // BOOST_CLASS_EXPORT_GUID(experiment::Homogeneous, "experiment::Homogeneous") - // BOOST_CLASS_EXPORT_GUID(experiment::Sequential, "experiment::Sequential") - // BOOST_CLASS_EXPORT_GUID(experiment::Simultaneous, "experiment::Simultaneous") - #endif --- 1257,1259 ---- Index: Technique.h =================================================================== RCS file: /cvsroot/echempp/Experiment/Experiment/Technique.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Technique.h 19 Feb 2007 18:35:30 -0000 1.12 --- Technique.h 19 Dec 2007 13:31:29 -0000 1.13 *************** *** 218,231 **** void save (BSUtilities::xmlw::XmlStream &os) const { ! os << BSUtilities::xmlw::tag (TAG) ! << BSUtilities::xmlw::attr (IDTAG) << TT::TYPE; ! BSUtilities::IF<BSUtilities:... [truncated message content] |