diff --git a/lib/sasa/sasaRun.ml b/lib/sasa/sasaRun.ml index 83d8174bf57afd6770ef8167f62fb378c7d3069b..1d3cdd0c0ff90ef21186d74f6d8edcf20aa07493 100644 --- a/lib/sasa/sasaRun.ml +++ b/lib/sasa/sasaRun.ml @@ -15,7 +15,7 @@ let (get_action_value : (string * Data.v) list -> string -> string -> bool) = open Sasacore open Process -let (from_sasa_env : 'v Main.t -> RdbgPlugin.sl) = +let (from_sasa_env : 'v SimuState.t -> RdbgPlugin.sl) = fun st -> List.fold_left (fun acc (p,_) -> @@ -37,7 +37,7 @@ let (get_sl_out: bool -> 'v Process.t list -> bool list list -> RdbgPlugin.sl) = pl ll ) -let (compute_potentiel: 'v Main.t -> RdbgPlugin.sl) = +let (compute_potentiel: 'v SimuState.t -> RdbgPlugin.sl) = fun st -> match Register.get_potential () with | None -> [] @@ -51,7 +51,7 @@ let (compute_potentiel: 'v Main.t -> RdbgPlugin.sl) = let p = (user_pf pidl get_info) in [("potential", Data.F p)] -let (compute_legitimate: bool -> 'v Main.t -> bool) = +let (compute_legitimate: bool -> 'v SimuState.t -> bool) = fun silent st -> silent || match Register.get_legitimate () with @@ -67,11 +67,11 @@ let (compute_legitimate: bool -> 'v Main.t -> bool) = (* update the network processes w.r.t. the config *) let update_network config network = List.map - (fun (p,nl) -> p, Sasacore.Main.update_neighbor_env config nl) + (fun (p,nl) -> p, Sasacore.SimuState.update_neighbor_env config nl) network -open Main -let (make_do: string array -> 'v Main.t -> RdbgPlugin.t) = +open SimuState +let (make_do: string array -> 'v SimuState.t -> RdbgPlugin.t) = fun argv st -> let pl = fst (List.split st.network) in let prog_id = Printf.sprintf "%s (with sasa Version %s)" @@ -79,11 +79,11 @@ let (make_do: string array -> 'v Main.t -> RdbgPlugin.t) = in let vntl_i = List.map (fun (vn,vt) -> vn, Data.type_of_string vt) - (Sasacore.Main.get_inputs_rif_decl st.sasarg pl) + (Sasacore.SimuState.get_inputs_rif_decl st.sasarg pl) in let vntl_o = List.map (fun (vn,vt) -> vn, Data.type_of_string vt) - (Sasacore.Main.get_outputs_rif_decl st.sasarg pl) + (Sasacore.SimuState.get_outputs_rif_decl st.sasarg pl) in let vntl_o = if Register.get_potential () = None then vntl_o else @@ -95,15 +95,15 @@ let (make_do: string array -> 'v Main.t -> RdbgPlugin.t) = pre_enable_processes_opt := None; sasa_config := st.config in - (* Do the same job as SasaMain.simustep *) + (* Do the same job as SasaSimuState.simustep *) let (step_custom: RdbgPlugin.sl -> RdbgPlugin.sl) = fun sl_in -> - let st = { st with Main.network = update_network !sasa_config st.network ; - Main.config = !sasa_config } in + let st = { st with SimuState.network = update_network !sasa_config st.network ; + SimuState.config = !sasa_config } in match !pre_enable_processes_opt with | None -> ( (* the first step *) (* 1: Get enable processes *) - let pnall, enab_ll = Sasacore.Main.get_enable_processes st in + let pnall, enab_ll = Sasacore.SimuState.get_enable_processes st in let sasa_nenv = from_sasa_env st in let pot_sl = compute_potentiel st in let silent = List.for_all (fun b -> not b) (List.flatten enab_ll) in @@ -125,7 +125,7 @@ let (make_do: string array -> 'v Main.t -> RdbgPlugin.t) = let nst = { st with network = update_network ne st.network ; config = ne } in let sasa_nenv = from_sasa_env nst in (* 1': Get enable processes *) - let pnall, enab_ll = Sasacore.Main.get_enable_processes nst in + let pnall, enab_ll = Sasacore.SimuState.get_enable_processes nst in let pot_sl = compute_potentiel nst in let silent = List.for_all (fun b -> not b) (List.flatten enab_ll) in let legit = compute_legitimate silent nst in @@ -137,10 +137,10 @@ let (make_do: string array -> 'v Main.t -> RdbgPlugin.t) = let (step_internal_daemon: RdbgPlugin.sl -> RdbgPlugin.sl) = fun sl_in -> (* in this mode, sasa does not play first *) - let st = { st with Main.network = update_network !sasa_config st.network ; - Main.config = !sasa_config } in + let st = { st with SimuState.network = update_network !sasa_config st.network ; + SimuState.config = !sasa_config } in (* 1: Get enable processes *) - let pnall, enab_ll = Sasacore.Main.get_enable_processes st in + let pnall, enab_ll = Sasacore.SimuState.get_enable_processes st in let pot_sl = compute_potentiel st in let silent = List.for_all (fun b -> not b) (List.flatten enab_ll) in let legit = compute_legitimate silent st in @@ -221,7 +221,7 @@ let (make_do: string array -> 'v Main.t -> RdbgPlugin.t) = let (make: string array -> RdbgPlugin.t) = fun argv -> try - make_do argv (Sasacore.Main.make false argv) + make_do argv (Sasacore.SimuState.make false argv) with | Dynlink.Error e -> Printf.printf "Error (SasaRun.make): %s\n" (Dynlink.error_message e); diff --git a/lib/sasacore/main.ml b/lib/sasacore/simuState.ml similarity index 100% rename from lib/sasacore/main.ml rename to lib/sasacore/simuState.ml diff --git a/lib/sasacore/main.mli b/lib/sasacore/simuState.mli similarity index 100% rename from lib/sasacore/main.mli rename to lib/sasacore/simuState.mli diff --git a/src/sasaMain.ml b/src/sasaMain.ml index 98fa2e97f08a10549faf642807834289ee8a7172..990ffd7a5edf71afc851365937383860fe6f149d 100644 --- a/src/sasaMain.ml +++ b/src/sasaMain.ml @@ -73,14 +73,14 @@ let legitimate p_nl_l e = in ulf pidl (from_pid p_nl_l) -open Sasacore.Main +open Sasacore.SimuState (* update the network processes w.r.t. the config *) let update_network config network = let verb = !Register.verbose_level > 0 in if verb then Printf.eprintf " ===> update_neighbor_env\n%!"; List.map - (fun (p,nl) -> p, Sasacore.Main.update_neighbor_env config nl) + (fun (p,nl) -> p, Sasacore.SimuState.update_neighbor_env config nl) network let inject_fault ff st = @@ -95,7 +95,7 @@ let inject_fault ff st = let plur i = if i>1 then "s" else "" -let (compute_potentiel: 'v Main.t -> string) = +let (compute_potentiel: 'v SimuState.t -> string) = fun st -> match Register.get_potential () with | None -> "" @@ -116,12 +116,12 @@ let (compute_potentiel: 'v Main.t -> string) = string_of_float p -let (simustep: int -> int -> string -> 'v Main.t -> 'v Main.t * string) = +let (simustep: int -> int -> string -> 'v SimuState.t -> 'v SimuState.t * string) = fun n i activate_val st -> (* 1: Get enable processes *) let verb = !Register.verbose_level > 0 in - if verb then Printf.eprintf "==> SasaMain.simustep :1: Get enable processes\n%!"; - let all, enab_ll = Sasacore.Main.get_enable_processes st in + if verb then Printf.eprintf "==> SasaSimuState.simustep :1: Get enable processes\n%!"; + let all, enab_ll = Sasacore.SimuState.get_enable_processes st in let pot = compute_potentiel st in let pl = fst(List.split st.network) in let st, all, enab_ll = @@ -141,7 +141,7 @@ let (simustep: int -> int -> string -> 'v Main.t -> 'v Main.t * string) = str !moves (plur !moves) (n-i) (plur (n-i)) !rounds (plur !rounds); Printf.eprintf "%s==> Inject a fault\n%!" str; let st = inject_fault ff st in - let all, enab_ll = Sasacore.Main.get_enable_processes st in + let all, enab_ll = Sasacore.SimuState.get_enable_processes st in st, all, enab_ll ) else if legitimate st.network st.config then ( @@ -157,7 +157,7 @@ let (simustep: int -> int -> string -> 'v Main.t -> 'v Main.t * string) = str !moves (plur !moves) (n-i) (plur (n-i)) !rounds (plur !rounds); Printf.eprintf "%s==> Inject a fault\n%!" str; let st = inject_fault ff st in - let all, enab_ll = Sasacore.Main.get_enable_processes st in + let all, enab_ll = Sasacore.SimuState.get_enable_processes st in st, all, enab_ll ) else @@ -166,7 +166,7 @@ let (simustep: int -> int -> string -> 'v Main.t -> 'v Main.t * string) = if st.sasarg.daemon = Daemon.Custom then print_step n i pot st.sasarg st.config pl activate_val enab_ll; (* 2: read the actions *) - if verb then Printf.eprintf "==> SasaMain.simustep : 2: read the actions\n%!"; + if verb then Printf.eprintf "==> SasaSimuState.simustep : 2: read the actions\n%!"; let get_action_value = RifRead.bool (st.sasarg.verbose > 1) in let next_activate_val, pnal = Daemon.f st.sasarg.dummy_input (st.sasarg.verbose >= 1) st.sasarg.daemon st.network st.config all enab_ll get_action_value @@ -175,23 +175,23 @@ let (simustep: int -> int -> string -> 'v Main.t -> 'v Main.t * string) = update_round next_activate_val enab_ll; let next_activate_val = bool_ll_to_string next_activate_val in (* 3: Do the steps *) - if verb then Printf.eprintf "==> SasaMain.simustep : 3: Do the steps\n%!"; + if verb then Printf.eprintf "==> SasaSimuState.simustep : 3: Do the steps\n%!"; if st.sasarg.daemon <> Daemon.Custom then print_step n i pot st.sasarg st.config pl next_activate_val enab_ll; let ne = Sasacore.Step.f pnal st.config in let st = { st with network = update_network ne st.network ; config = ne } in st, next_activate_val -let rec (simuloop: int -> int -> string -> 'v Main.t -> unit) = +let rec (simuloop: int -> int -> string -> 'v SimuState.t -> unit) = fun n i activate_val st -> - if !Register.verbose_level > 0 then Printf.eprintf "==> SasaMain.simuloop %d/%d \n%!" i n; + if !Register.verbose_level > 0 then Printf.eprintf "==> SasaSimuState.simuloop %d/%d \n%!" i n; let st, next_activate_val = simustep n i activate_val st in if i > 0 then simuloop n (i-1) next_activate_val st else ( print_string "#q\n"; flush_all () ) let () = - let st = Sasacore.Main.make true Sys.argv in + let st = Sasacore.SimuState.make true Sys.argv in try let n = st.sasarg.length in simuloop n n "" st