00001 00004 #ifndef DIVINE_BYMOC_SYSTEM_TRANS_HH 00005 #define DIVINE_BYMOC_SYSTEM_TRANS_HH 00006 00007 #ifndef DOXYGEN_PROCESSING 00008 #include "system/dve/dve_system_trans.hh" 00009 #include "system/dve/dve_explicit_system.hh" 00010 #include "system/dve/dve_transition.hh" 00011 #include "system/system_trans.hh" 00012 #include "common/array.hh" 00013 00014 namespace divine { //We want Doxygen not to see namespace `dve' 00015 using std::cerr; using std::endl; 00016 #endif //DOXYGEN_PROCESSING 00017 00018 class explicit_system_t; 00019 00020 00022 00025 class bymoc_system_trans_t: virtual public system_trans_t 00026 { 00027 public: 00028 virtual ~bymoc_system_trans_t(); 00030 virtual system_trans_t & operator=(const system_trans_t & second); 00032 virtual std::string to_string() const; 00034 virtual void write(std::ostream & ostr) const; 00036 virtual void set_count(const size_int_t new_count); 00038 virtual size_int_t get_count() const; 00040 virtual transition_t *& operator[](const int i); 00042 virtual transition_t * const & operator[](const int i) const; 00043 }; 00044 00046 00049 class bymoc_enabled_trans_t: public enabled_trans_t, public bymoc_system_trans_t 00050 { 00051 private: 00052 bool error; 00053 public: 00055 virtual enabled_trans_t & operator=(const enabled_trans_t & second); 00056 }; 00057 00058 00059 #ifndef DOXYGEN_PROCESSING 00060 } //END of namespace DVE 00061 00062 #endif //DOXYGEN_PROCESSING 00063 00064 #endif 00065