00001
00004 #ifndef DIVINE_PROB_PROCESS_HH
00005 #define DIVINE_PROB_PROCESS_HH
00006
00007 #ifndef DOXYGEN_PROCESSING
00008
00009 #include "system/system.hh"
00010 #include "system/prob_system.hh"
00011 #include "system/prob_transition.hh"
00012
00013 namespace divine {
00014
00015 #endif //DOXYGEN_PROCESSING
00016
00017
00018 class prob_system_t;
00019 class prob_transition_t;
00020 class system_t;
00021 class transition_t;
00022
00025
00034 class prob_process_t: public virtual process_t
00035 {
00036 protected:
00038 prob_system_t * parent_prob_system;
00039
00040 public:
00042 prob_process_t():process_t(0),parent_prob_system(0) {}
00044
00045 prob_process_t(prob_system_t * const prob_system):process_t(prob_system)
00046 { parent_prob_system=prob_system; }
00048 virtual ~prob_process_t() {}
00049
00051 prob_system_t * get_parent_prob_system() const { return parent_prob_system; }
00052
00054 virtual void set_parent_prob_system(prob_system_t & system)
00055 { parent_prob_system = &system; }
00056
00059 virtual const prob_transition_t * get_prob_transition
00060 (const size_int_t prob_trans_lid) const = 0;
00061
00063 virtual prob_transition_t * get_prob_transition
00064 (const size_int_t prob_trans_lid) = 0;
00065
00067 virtual size_int_t get_prob_trans_count() const = 0;
00068
00071 virtual void add_prob_transition(prob_transition_t * const transition) = 0;
00072
00075 virtual void remove_prob_transition(const size_int_t prob_trans_lid) = 0;
00076
00077 };
00078
00079
00080 #ifndef DOXYGEN_PROCESSING
00081 }
00082
00083 #endif //DOXYGEN_PROCESSING
00084
00085 #endif
00086
00087
00088
00089