00001 00003 #ifndef _DIVINE_DVE_PROCESS_DECOMPOSITION_HH_ 00004 #define _DIVINE_DVE_PROCESS_DECOMPOSITION_HH_ 00005 00006 #ifndef DOXYGEN_PROCESSING 00007 #include "common/process_decomposition.hh" 00008 #include "system/dve/dve_explicit_system.hh" 00009 #include "system/dve/dve_process.hh" 00010 namespace divine { 00011 #endif 00012 00017 class dve_process_decomposition_t : public process_decomposition_t 00018 { 00019 private: 00020 dve_explicit_system_t& system; 00021 bool initialized; 00022 const dve_process_t *dve_proc_ptr; 00023 std::size_t proc_id; 00024 int proc_size; 00025 int scc_count; 00026 00027 int n,h; 00028 int *graf; 00029 int *hran; 00030 int pocitadlo; 00031 int *number, *low; 00032 int *zasobnik; 00033 int ps; 00034 int *on_stack; 00035 int *komp; 00036 int *types; 00037 00038 void strong(int); 00039 public: 00040 dve_process_decomposition_t(dve_explicit_system_t& system); 00041 00042 void parse_process(std::size_t); 00043 int get_process_scc_id(state_t&); 00044 int get_process_scc_type(state_t&); 00045 int get_scc_type_for_gid(int); 00046 int get_scc_type(int); 00047 int get_scc_count(); 00048 bool is_weak(); 00049 }; 00050 00051 00052 #ifndef DOXYGEN_PROCESSING 00053 } 00054 #endif 00055 #endif