/usr/lib/ocaml/netplex/netplex_mbox.mli is in libocamlnet-ocaml-dev 4.0.4-1build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | (* $Id$ *)
(** Netplex message boxes *)
(** This plugin implements a message box, following a simple model:
Receivers wait until messages are put into the box. Senders
wait until the box is free again.
This is actually an extension of {!Netplex_sharedvar}, and the
same caveats apply.
*)
open Netplex_types
val plugin : plugin
(** To enable message boxes, call the controller's [add_plugin] method
with this object as argument. This can e.g. be done in the
[post_add_hook] of the processor.
*)
(** How to use this module:
- Encapsulate the type of the messages:
{[ module Msg_type = struct type t = <some_type> end ]}
- Create the box module for this type:
{[ module Mbox_type = Netplex_mbox.Make_mbox_type(Msg_type) ]}
- Call functions of this module, e.g.
{[
let box = Mbox_type.create "my_box"
let msg = Mbox_type.receive box
]}
*)
(** The type of mailboxes [mbox] with messages of type [t] *)
module type MBOX = sig
type t
(** The type of messages *)
type mbox
(** The type of the mailboxes *)
val create : string -> mbox
(** Creates a new mailbox with the passed name, or opens an existing
mailbox. Names are global to the whole Netplex process system.
*)
val send : mbox -> t -> unit
(** Send a message to this box. If the box is full, it is waited until
the box is free again. If several senders wait for the box, one
sender is selected.
*)
val receive : mbox -> t
(** Receive a message: It is waited until a sender puts a message into
the box. If several receivers wait for the box, one receiver is
selected.
*)
end
module Make_mbox_type (T:Netplex_cenv.TYPE) : MBOX with type t = T.t
(** Create a new mailbox access module for message type [T.t] *)
|