00001
00004 #ifndef DIVINE_DVE_PROB_TRANSITION_HH
00005 #define DIVINE_DVE_PROB_TRANSITION_HH
00006
00007 #ifndef DOXYGEN_PROCESSING
00008 #include <iostream>
00009 #include <string>
00010 #include <sstream>
00011 #include "system/prob_transition.hh"
00012 #include "system/prob_system.hh"
00013 #include "system/dve/syntax_analysis/dve_parser.hh"
00014
00015 namespace divine {
00016 using std::cerr; using std::endl;
00017 #endif //DOXYGEN_PROCESSING
00018
00019 class dve_parser_t;
00020 class prob_system_t;
00021
00022
00024
00026 class dve_prob_transition_t: public prob_transition_t
00027 {
00028 private:
00029 static dve_parser_t prob_trans_parser;
00030
00031 protected:
00032 bool valid;
00033
00034 public:
00036 dve_prob_transition_t(): transition_t(), prob_transition_t() {}
00038 dve_prob_transition_t(prob_system_t * const system): transition_t(system), prob_transition_t(system) {}
00039
00041 void set_valid(const bool is_valid) { valid = is_valid; }
00042
00043
00044 bool get_valid() const { return valid; }
00045
00047 virtual std::string to_string() const;
00049 virtual void write(std::ostream & ostr) const;
00051 virtual int read(std::istream & istr, size_int_t process_gid = NO_ID);
00053 virtual int from_string(std::string & trans_str,
00054 const size_int_t process_gid = NO_ID);
00055 };
00056
00057 #ifndef DOXYGEN_PROCESSING
00058 }
00059 #include "common/undeb.hh"
00060
00061 #endif //DOXYGEN_PROCESSING
00062
00063 #endif
00064
00065