00001
00004 #ifndef DIVINE_DVE_PROB_EXPLICIT_SYSTEM_HH
00005 #define DIVINE_DVE_PROB_EXPLICIT_SYSTEM_HH
00006
00007 #ifndef DOXYGEN_PROCESSING
00008 #include "system/dve/dve_explicit_system.hh"
00009 #include "system/dve/dve_prob_system.hh"
00010 #include "system/prob_explicit_system.hh"
00011
00012 namespace divine {
00013 using std::cerr; using std::endl;
00014 #endif //DOXYGEN_PROCESSING
00015
00016
00018
00036 class dve_prob_explicit_system_t : public dve_explicit_system_t, public prob_explicit_system_t, public dve_prob_system_t
00037 {
00038 private:
00039 succ_container_t only_succs;
00040 prob_succ_container_t aux_prob_succs;
00041 public:
00043 virtual int get_succs(state_t state, prob_succ_container_t & succs, enabled_trans_container_t & etc);
00044
00045 virtual int get_succs(state_t state, prob_succ_container_t & succs)
00046 {
00047 int result=get_succs(state,succs,*aux_enabled_trans);
00048 return result;
00049 }
00050
00051 virtual int get_succs_ordered_by_prob_and_property_trans(state_t state, prob_succ_container_t & succs);
00052
00053 virtual slong_int_t read(std::istream & ins)
00054 { return dve_prob_system_t::read(ins); }
00055
00056 virtual slong_int_t read(const char * const filename)
00057 { return dve_explicit_system_t::read(filename); }
00058
00059
00061
00062 dve_prob_explicit_system_t(error_vector_t & evect = gerr): explicit_system_t(evect), dve_explicit_system_t(evect), prob_explicit_system_t(evect), only_succs(*this), aux_prob_succs(*this) {}
00064 virtual ~dve_prob_explicit_system_t() {};
00065
00066 };
00067
00068
00069
00070 #ifndef DOXYGEN_PROCESSING
00071 }
00072 #include "common/undeb.hh"
00073
00074 #endif //DOXYGEN_PROCESSING
00075
00076 #endif