00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef SLOUGHINGCELLKILLER_HPP_
00029 #define SLOUGHINGCELLKILLER_HPP_
00030
00031 #include "AbstractCellKiller.hpp"
00032
00033 #include <boost/serialization/access.hpp>
00034 #include <boost/serialization/base_object.hpp>
00035
00044 class SloughingCellKiller : public AbstractCellKiller<2>
00045 {
00046 private:
00047
00049 bool mSloughSides;
00050
00052 friend class boost::serialization::access;
00059 template<class Archive>
00060 void serialize(Archive & archive, const unsigned int version)
00061 {
00062 archive & boost::serialization::base_object<AbstractCellKiller<2> >(*this);
00063
00064
00065
00066 CancerParameters* p_params = CancerParameters::Instance();
00067 archive & *p_params;
00068 archive & p_params;
00069 }
00070
00071 public:
00072
00079 SloughingCellKiller(AbstractTissue<2>* pCrypt, bool sloughSides=false);
00080
00084 bool GetSloughSides() const;
00085
00089 virtual void TestAndLabelCellsForApoptosisOrDeath();
00090
00091 };
00092
00093 #include <boost/serialization/export.hpp>
00094
00095 BOOST_CLASS_EXPORT(SloughingCellKiller)
00096
00097 namespace boost
00098 {
00099 namespace serialization
00100 {
00104 template<class Archive>
00105 inline void save_construct_data(
00106 Archive & ar, const SloughingCellKiller * t, const BOOST_PFTO unsigned int file_version)
00107 {
00108
00109 const AbstractTissue<2>* const p_crypt = t->GetTissue();
00110 ar << p_crypt;
00111 bool slough_sides = t->GetSloughSides();
00112 ar << slough_sides;
00113 }
00114
00118 template<class Archive>
00119 inline void load_construct_data(
00120 Archive & ar, SloughingCellKiller * t, const unsigned int file_version)
00121 {
00122
00123 AbstractTissue<2>* p_crypt;
00124 ar >> p_crypt;
00125 bool slough_sides;
00126 ar >> slough_sides;
00127
00128
00129 ::new(t)SloughingCellKiller(p_crypt, slough_sides);
00130 }
00131 }
00132 }
00133
00134 #endif