Functor Service_graph.Make


module Make: 
functor (G : sig
type t 
module V: sig .. end
val iter_vertex : (V.t -> unit) -> t -> unit
val callees : t -> V.t -> V.t list
val callers : t -> V.t -> V.t list
val name : string
end) -> sig .. end
Parameters:
G : sig type t module V: sig type t val id: t -> int (** assume is >= 0 and unique for each vertices of the graph *) val name: t -> string val attributes: t -> Graph.Graphviz.DotAttributes.vertex list end val iter_vertex: (V.t -> unit) -> t -> unit val callees: t -> V.t -> V.t list val callers: t -> V.t -> V.t list val name: string end


type m = private
| Nothing
| Service of int
| JustMet of int

type vertex = private {
   node : G.V.t;
   mutable mark : m;
   mutable visited : bool;
   is_service : bool;
}
module CallG: sig .. end
val output_graph : Pervasives.out_channel -> CallG.t -> unit
val compute : G.t -> Cilutil.StringSet.t -> CallG.t

Graph of services
module SS: Set.S  with type elt = G.V.t

type service_vertex = private {
   service : int;
   mutable root : G.V.t;
   mutable nodes : SS.t;
}
Since Beryllium-20090901
module SG: sig .. end
val compute_services : CallG.t -> SG.t
Since Beryllium-20090901
val output_services : Pervasives.out_channel -> SG.t -> unit
Since Beryllium-20090901