1(* ========================================================================= *)
2(* METERING TIME AND INFERENCES                                              *)
3(* Copyright (c) 2001-2004 Joe Hurd.                                         *)
4(* ========================================================================= *)
5
6signature mlibMeter =
7sig
8
9type 'a pp = 'a mlibUseful.pp
10
11(* Search limits *)
12type limit          = {time : real option, infs : int option}
13val unlimited       : limit
14val expired         : limit
15val pp_limit        : limit pp
16val limit_to_string : limit -> string
17
18(* mlibMeter readings *)
19type meter_reading          = {time : real, infs : int}
20val zero_reading            : meter_reading
21val add_readings            : meter_reading -> meter_reading -> meter_reading
22val pp_meter_reading        : meter_reading pp
23val meter_reading_to_string : meter_reading -> string
24
25(* mlibMeters record time and inferences *)
26type meter
27val new_meter   : limit -> meter
28val sub_meter   : meter -> limit -> meter
29val record_infs : meter -> int -> unit
30val read_meter  : meter -> meter_reading
31val read_infs   : meter -> int
32val check_meter : meter -> bool
33val pp_meter    : meter pp
34
35end
36