blob: a32319705333df8c64add82aaac7711b477689a6 (
plain) (
tree)
|
|
class type lifecycle = object
method reference : bool
method release : unit
method is_managed : bool
end
class type virtual controlled_lifecycle = object
inherit lifecycle
method virtual destroy : unit
end
class null : lifecycle
class exclusive : lifecycle
class virtual counted : controlled_lifecycle
(** stands for [inner], carrying what it carries, while holding a
reference to [owner], so what [inner] reads outlives a release of
the object that produced it. *)
class retaining : Protocols.Handle.t -> lifecycle -> object
inherit lifecycle
method destroy : unit
method hash : Concepts.Hash.hash
method protocols : Protocols.Handle.protocol list
end
|