blob: d0383f54e6a969ab9b122548f65332a061b634e3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2021 CentraleSupelec, CEA-LIST
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Erwan Mahé (CentraleSupelec) - initial API and implementation
*******************************************************************************/
use std::collections::HashMap;
// ***
use crate::core::syntax::data::generic::TD_Generic;
use crate::core::syntax::data::builtin::bool::TD_Bool;
use crate::core::syntax::position::*;
use crate::core::syntax::interaction::Interaction;
use crate::core::syntax::action::*;
use crate::core::context::general::GeneralContext;
use crate::core::context::execution::ExecutionContext;
use crate::core::trace::*;
use crate::process::hibou_process::FilterEliminationKind;
use crate::process::verdicts::*;
pub trait ProcessLogger {
fn log_init(&mut self,
interaction : &Interaction,
gen_ctx : &GeneralContext,
exe_ctx : &ExecutionContext,
remaining_multi_trace : &Option<AnalysableMultiTrace>);
fn log_term(&mut self,
options_as_str : &Vec<String>);
fn log_execution(&mut self,
gen_ctx : &GeneralContext,
parent_state_id : u32,
new_state_id : u32,
action_position : &Position,
trace_action : Option<&TraceAction>,
model_action : &ObservableAction,
new_interaction : &Interaction,
new_exe_ctx : &ExecutionContext,
remaining_multi_trace : &Option<AnalysableMultiTrace>);
fn log_verdict(&mut self,
parent_state_id : u32,
verdict : &CoverageVerdict);
fn log_filtered(&mut self,
gen_ctx : &GeneralContext,
exe_ctx:&ExecutionContext,
parent_state_id : u32,
new_state_id : u32,
action_position : &Position,
action : &ObservableAction,
elim_kind : &FilterEliminationKind);
fn log_unsat(&mut self,
gen_ctx : &GeneralContext,
exe_ctx:&ExecutionContext,
parent_state_id : u32,
new_state_id : u32,
action_position : &Position,
trace_action : Option<&TraceAction>,
model_action : &ObservableAction);
}