Provided by: erlang-manpages_18.3-dfsg-1ubuntu3.1_all bug

NAME

       ose - Interface module for OSE messaging and process monitoring from Erlang.

DESCRIPTION

       Interface module for OSE messaging and process monitoring from Erlang

       For  each  mailbox  created through open/1 a OSE phantom process with that name is started. Since phantom
       processes are used the memory footprint of each mailbox is quite small.

       To receive messages you first have to subscribe to the specific message numbers that you  are  interested
       in with listen/2. The messages will be sent to the Erlang process that created the mailbox.

DATA TYPES

         attach_ref():

           Reference  from  an attach request. This term will be included in the term returned when the attached
           mailbox disappears.

         hunt_ref():

           Reference from a hunt request. This term will be included in a successful hunt response.

         mailbox():

           Mailbox handle. Implemented as an erlang port.

         mailbox_id():

           Mailbox ID, this is the same as the process id of an OSE process. An integer.

         message_number() = 0..4294967295:

           OSE Signal number

EXPORTS

       attach(Port, Pid) -> Ref

              Types:

                 Port = mailbox()
                 Pid = mailbox_id()
                 Ref = attach_ref()

              Attach to an OSE process.

              Will send {mailbox_down, Port, Ref, MboxId} to the calling process if the OSE process exits.

              Returns a reference that can be used to cancel the attachment using detach/2.

              raises: badarg | enomem

       close(Port) -> ok

              Types:

                 Port = mailbox()

              Close a mailbox

              This kills the OSE phantom process associated with this mailbox.

              Will also consume any {'EXIT',Port,_} message from the port that comes due  to  the  port  closing
              when the calling process traps exits.

              raises: badarg

       dehunt(Port, Ref) -> ok

              Types:

                 Port = mailbox()
                 Ref = hunt_ref()

              Stop hunting for OSE process.

              If  a  message  for this hunt has been sent but not received by the calling process, it is removed
              from the message queue. Note that this only works if the same process that did the hunt  does  the
              dehunt.

              raises: badarg

              See also: hunt/2.

       detach(Port, Ref) -> ok

              Types:

                 Port = mailbox()
                 Ref = attach_ref()

              Remove attachment to an OSE process.

              If a message for this monitor has been sent but not received by the calling process, it is removed
              from the message queue. Note that this only works of the same process that did the attach does the
              detach.

              raises: badarg

              See also: attach/2.

       get_id(Port) -> Pid

              Types:

                 Port = mailbox()
                 Pid = mailbox_id()

              Get the mailbox id for the given port.

              The  mailbox  id  is  the  same as the OSE process id of the OSE phantom process that this mailbox
              represents.

              raises: badarg

       get_name(Port, Pid) -> Name | undefined

              Types:

                 Port = mailbox()
                 Pid = mailbox_id()
                 Name = binary()

              Get the mailbox name for the given mailbox id.

              The mailbox name is the name of the OSE process with process id Pid.

              This call will fail with badarg if the underlying system does not support getting the name from  a
              process id.

              raises: badarg

       hunt(Port, HuntPath) -> Ref

              Types:

                 Port = mailbox()
                 HuntPath = iodata()
                 Ref = hunt_ref()

              Hunt for OSE process by name.

              Will  send  {mailbox_up,  Port,  Ref,  MboxId} to the calling process when the OSE process becomes
              available.

              Returns a reference term that can be used to cancel the hunt using dehunt/2.

              raises: badarg

       listen(Port, SigNos) -> ok

              Types:

                 Port = mailbox()
                 SigNos = [message_number()]

              Start listening for specified OSE signal numbers.

              The mailbox will  send  {message,Port,{FromMboxId,ToMboxId,MsgNo,MsgData}}  to  the  process  that
              created the mailbox when an OSE message with any of the specified SigNos arrives.

              Repeated calls to listen will replace the current set of signal numbers to listen to. i.e

                   1>ose:listen(MsgB,[1234,12345]).
                 ok
                 2> ose:listen(MsgB,[1234,123456]).
                 ok.

              The  above  will  first listen for signals with numbers 1234 and 12345, and then replace that with
              only listening to 1234 and 123456.

              With the current implementation it is not possible to listen to all signal numbers.

              raises: badarg | enomem

       open(Name) -> Port

              Types:

                 Name = iodata()
                 Port = mailbox()

              Create a mailbox with the given name and return a port that handles the mailbox.

              An OSE phantom process with the given name will be  created  that  will  send  any  messages  sent
              through  this mailbox. Any messages sent to the new OSE process will automatically be converted to
              an Erlang message and sent to the Erlang process  that  calls  this  function.  See  listen/2  for
              details about the format of the message sent.

              The caller gets linked to the created mailbox.

              raises: badarg | system_limit

              See also: listen/2.

       send(Port, Pid, SigNo, SigData) -> ok

              Types:

                 Port = mailbox()
                 Pid = mailbox_id()
                 SigNo = message_number()
                 SigData = iodata()

              Send an OSE message.

              The message is sent from the OSE process' own ID that is: get_id(Port).

              raises: badarg

              See also: send/5.

       send(Port, Pid, SenderPid, SigNo, SigData) -> ok

              Types:

                 Port = mailbox()
                 Pid = mailbox_id()
                 SenderPid = mailbox_id()
                 SigNo = message_number()
                 SigData = iodata()

              Send an OSE message with different sender.

              As send/4 but the sender will be SenderPid.

              raises: badarg

              See also: send/4.

AUTHORS

       <>

                                                     ose 1.1                                           ose(3erl)