sig
  type status = St_active | St_killed | St_collected
  type tag = {
    id : Protocol.tag;
    kind : Protocol.kind;
    name : string;
    tmap : Protocol.value Timemap.t;
    mutable value : float * Protocol.value;
    tmap_st : Db.status Timemap.t;
    mutable status : float * Db.status;
  }
  val add_tag : Protocol.tag -> Protocol.kind -> string -> unit
  val change_value : Protocol.tag -> Protocol.value -> unit
  val interp : Protocol.msg -> unit
  val clean_up : unit -> unit
  val get_current_time : unit -> float
  val set_observe_time : float -> unit
  val get_observe_time : unit -> float
  val set_offset : float -> unit
  val get_offset : unit -> float
  val set_record_window : float -> unit
  val get_record_window : unit -> float
  val get_log_size : unit -> int
  val set_log_size : int -> unit
  val get_tag : Protocol.tag -> Db.tag
  val get_bindings : Protocol.tag -> Protocol.tag list
  val get_heap_total_size : unit -> float * Protocol.value
  val get_heap_alive_size : unit -> float * Protocol.value
  val get_heap_max_size : unit -> float * Protocol.value
  val get_point : Protocol.tag -> float * Protocol.value
  val get_time : Protocol.tag -> float * Protocol.value
  val get_percent_time : Protocol.tag -> float * Protocol.value
  val get_tag_size : Protocol.tag -> float * Protocol.value
  val get_tag_max_size : Protocol.tag -> float * Protocol.value
  val get_tag_percent_size : Protocol.tag -> float * Protocol.value
  val get_tag_count : Protocol.tag -> float * Protocol.value
  val get_tag_max_count : Protocol.tag -> float * Protocol.value
  val get_value_int : Protocol.tag -> float * Protocol.value
  val get_value_float : Protocol.tag -> float * Protocol.value
  val get_value_string : Protocol.tag -> float * Protocol.value
  val get_value_bool : Protocol.tag -> float * Protocol.value
  val get_tree : Protocol.tag -> float * Protocol.value
  val get_hash : Protocol.tag -> float * Protocol.value
  val get_hash_percent_filled : Protocol.tag -> float * Protocol.value
  val get_hash_mean : Protocol.tag -> float * Protocol.value
  val get_point_list : unit -> Db.tag list
  val get_time_list : unit -> Db.tag list
  val get_tag_count_list : unit -> Db.tag list
  val get_tag_size_list : unit -> Db.tag list
  val get_value_int_list : unit -> Db.tag list
  val get_value_float_list : unit -> Db.tag list
  val get_value_string_list : unit -> Db.tag list
  val get_value_bool_list : unit -> Db.tag list
  val get_tree_list : unit -> Db.tag list
  val get_hash_list : unit -> Db.tag list
  val get_log : unit -> float * Protocol.value
end