00001 // exception throw when illegal subdivision strategy changes occur 00002 00003 #ifndef stratChange_hh 00004 #define stratChange_hh 00005 00006 #include "basics/exceptions.hh" 00007 #include "subdivision.hh" 00008 00009 namespace concepts { 00010 00011 // forward declaration 00012 class Connector; 00013 00014 // ******************************************************** StrategyChange ** 00015 00022 class StrategyChange : public ExceptionBase { 00023 public: 00029 StrategyChange(const Subdivision& oldStrategy, 00030 const Subdivision& newStrategy, 00031 const Connector& conn) throw(); 00033 const Subdivision& oldStrategy() const throw() { return oldStrategy_; } 00035 const Subdivision& newStrategy() const throw() { return newStrategy_; } 00037 const Connector& connector() const throw() { return conn_; } 00038 protected: 00039 virtual std::ostream& info(std::ostream& os) const throw(); 00040 private: 00041 const Subdivision& oldStrategy_, & newStrategy_; 00042 const Connector& conn_; 00043 }; 00044 00045 } // namespace concepts 00046 00047 #endif // stratChange_hh