[ External Interface | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]
peer_queue_create(+Queue, +Peer, +QueueType, +Direction, +Event)
Create a new peer queue Queue for Peer from ECLiPSe side.
- Name of peer queue (atom)
- Peer name (atom)
- Queue type (sync or async)
- Queue direction (fromec, toec or bidirect)
- Event for peer queue (atom or event handle)
Creates a new peer queue Queue for peer Peer from ECLiPSe
side. The nature of queue created is specified by the other arguments
(see the Embedding and interfacing manual for more details on peer queues):
Type of the queue: either synchronous (sync) or asynchronous (async).
Direction of the synchronous queue: either from ECLiPSe to remote
(fromec) or to ECLiPSe from remote (toec). This argument is ignored
for asynchronous queues, which are bidirectional.
Name or handle of event that will be raised on the ECLiPSe side when
data arrives. Applicable only for data sent from remote side to ECLiPSe.
If Event is the empty atom '', then no event will be associated with
the peer queue.
This predicate will cause the queue to be created (if permitted by
the remote side) on both the ECLiPSe and remote sides. Alternatively,
the queue can be created from the remote side. Note in either case,
the creation is done only on one side, and the created queue appears
on the other side without an explicit creation there. Note also that
if the queue is created on the ECLiPSe side, there is no way to name
the handler on the remote side for data arriving on the remote side.
In the case of a remote peer, the queue is connected by a socket
connection between the two sides. The server socket is created on the
ECLiPSe side, and it will wait at most TimeOut seconds for the remote
side to make the connection. TimeOut is the time specified in
remote_connect_accept/6 when the remote peer was created. In
addition, when the client socket connection is accepted, ECLiPSe
checks to ensure that the client's host is the same as the one that
formed the attachment. If not, then the connection is from someone
else, and ECLiPSe will reject and close the queue connection.
Modes and Determinism
- peer_queue_create(+, +, +, +, +) is semidet
Peer is not a current peer.
- (5) type error
- QueueName, Peer or Event not of the correct type.
- (6) out of range
- QueueType or Direction not of permitted values.
peer_queue_close / 1, peer_queue_get_property / 3, remote_connect_accept / 6, event_create / 3