Common Lisp Package: COMMON-LISP-ERLANG-INTERFACE

CLERIC (Common Lisp Erlang Interface) - An implementation of the Erlang distribution protocol.

README:

FUNCTION

Public

BINARY (&REST BYTES)

Creates an Erlang binary from BYTES.

BINARY-TO-STRING (BINARY)

Translates the bytes in BINARY to an ASCII string.

BYTES-TO-BINARY (BYTES)

Creates an Erlang binary from BYTES.

DECODE (BYTES &KEY (START 0) (VERSION-TAG NIL))

Decode a sequence of bytes to an Erlang object.

ERLANG-TRANSLATABLE-P (OBJECT)

Returns true if OBJECT is translatable to an Erlang object.

MAKE-PID

Create a new Erlang PID.

MAKE-REFERENCE

Create a new Erlang reference.

NODE-HOST (NODE-STRING)

Return the host part of a node identifier

NODE-NAME (NODE-STRING)

Return the name part of a node identifier

RECEIVE-NODE-MESSAGES (&KEY TIMEOUT)

Waits for and receives messages from connected nodes.

REG-SEND (FROM-PID TO-NAME NODE MESSAGE)

Send a message to a registered Pid.

REMOTE-NODE-CONNECT (REMOTE-NODE COOKIE)

Connect and perform handshake with a remote node.

SEND (TO-PID MESSAGE)

Send a message to Pid.

STRING-TO-BINARY (STRING)

Creates an Erlang binary from the characters in STRING.

TUPLE (&REST ERLANG-TRANSLATABLE-OBJECTS)

Create an Erlang tuple

Undocumented

CONNECTED-REMOTE-NODES

LISTENING-P

LISTENING-PORT

MAKE-ATOM (STRING)

REMOTE-NODE-ACCEPT-CONNECT (COOKIE)

START-LISTENING

START-LISTENING-ON-SOCKET-RESTART (CONDITION)

STOP-LISTENING

THIS-NODE

SETFTHIS-NODE (NODE-NAME)

TRY-AGAIN-CONDITION-P (CONDITION)

TRY-CONNECT-AGAIN-RESTART (CONDITION)

Private

ATOM-CACHE-SEGMENTS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

DECODE-CONTROL-MESSAGE (BYTES &KEY (START 0) (VERSION-TAG NIL))

Decode a sequence of bytes to a Control Message.

GENERATE-CHALLENGE

Generate a random 32-bit unsigned integer.

Undocumented

ACCEPT-CONNECT

ATOM-CACHE-ADD (SYMBOL CACHE S-INDEX INTERNAL-S-INDEX)

ATOM-CACHE-ADD-NEW (SYMBOL CACHE)

ATOM-CACHE-ENTRIES-ADD-ENTRY (ATOM NEW-P S-INDEX INTERNAL-S-INDEX ENTRIES)

ATOM-CACHE-ENTRIES-POSITION (ATOM ATOM-CACHE-ENTRIES)

ATOM-CACHE-FIND-FREE (CACHE)

ATOM-CACHE-GET (CACHE S-INDEX INTERNAL-S-INDEX)

ATOM-CACHE-LOCATION-OF (SYMBOL CACHE)

ATOM-CACHE-P (OBJECT)

ATOM-CACHE-PRINT-ATOMS (CACHE &OPTIONAL (STREAM *STANDARD-OUTPUT*))

ATOM-LENGTH (ATOM)

CALCULATE-DIGEST (CHALLENGE COOKIE)

CAPABILITY-FLAGS

COPY-ATOM-CACHE (INSTANCE)

DECODE-ATOM-CACHE-REF (FLAGS BYTES &OPTIONAL LONG-ATOMS (POS 0))

DECODE-DISTRIBUTION-HEADER (BYTES &OPTIONAL (POS 0))

DECODE-FLAGS (NUMBER-OF-REFS BYTES &OPTIONAL (POS 0))

ENCODE-ATOM-CACHE-REFS (ENTRIES)

ENCODE-FLAGS (HALF-BYTES)

EQUAL-DIGESTS (D1 D2)

FIND-CONNECTED-REMOTE-NODE (NODE-NAME)

GENERATE-NEW-PID-ID

GENERATE-NEW-REFERENCE-ID

LONG-ATOM-P (ATOM)

LONG-ATOMS-P (ENTRIES)

MAKE-ATOM-CACHE

MAKE-ATOM-CACHE-ENTRIES

MAKE-ATOM-CACHE-ENTRY (ATOM ATOM-CACHE-ENTRIES)

MAKE-CONTROL-MESSAGE (TUPLE)

MAKE-DISTRIBUTION-HEADER (&OPTIONAL (CACHED-ATOMS #()))

PERFORM-CLIENT-HANDSHAKE (STREAM COOKIE)

PERFORM-SERVER-HANDSHAKE (STREAM COOKIE)

READ-CHALLENGE-ACK-MESSAGE (STREAM)

READ-CHALLENGE-MESSAGE (STREAM)

READ-CHALLENGE-REPLY-MESSAGE (STREAM)

READ-NAME-MESSAGE (STREAM)

READ-NODE-MESSAGE (STREAM)

READ-STATUS-MESSAGE (STREAM)

REGISTER-CONNECTED-REMOTE-NODE (REMOTE-NODE)

REMOTE-NODE-SOCKETS

WRITE-CHALLENGE-ACK-MESSAGE (STREAM DIGEST)

WRITE-CHALLENGE-MESSAGE (STREAM VERSION FLAGS CHALLENGE FULL-NODE-NAME)

WRITE-CHALLENGE-REPLY-MESSAGE (STREAM CHALLENGE DIGEST)

WRITE-NAME-MESSAGE (STREAM VERSION FLAGS FULL-NODE-NAME)

WRITE-NODE-MESSAGE (CONTROL-MESSAGE STREAM &KEY (DISTRIBUTION-HEADER NIL) (CACHE-ATOMS NIL))

WRITE-STATUS-MESSAGE (STREAM STATUS-STRING)

GENERIC-FUNCTION

Public

ENCODE (ERLANG-TRANSLATABLE-OBJECT &KEY VERSION-TAG ATOM-CACHE-ENTRIES &ALLOW-OTHER-KEYS)

Encodes the Erlang translatable object to a byte vector.

MATCH-P (OBJECT-A OBJECT-B)

Predicate for testing if two Erlang objects match.

SIZE (TUPLE-OR-BINARY)

Returns the size of an Erlang tuple or binary.

Private

ENCODE-CONTROL-MESSAGE (CONTROL-MESSAGE &KEY VERSION-TAG ATOM-CACHE-ENTRIES &ALLOW-OTHER-KEYS)

Encodes the Control Message to a vector of bytes.

Undocumented

PORT (CONDITION)

SOCKET-STREAM (NODE)

SLOT-ACCESSOR

Public

ARITY (TUPLE-OR-FUN)

The Returns the arity of an Erlang tuple or fun.

BITS-IN-LAST-BYTE (OBJECT)

The number of bits in the last byte of an Erlang binary.

BYTES (CONDITION)

Returns a vector of bytes from an Erlang binary.

REMOTE-NODE-NAME (OBJECT)

The name of the remote node.

Undocumented

ELEMENTS (OBJECT)

FROM-PID (OBJECT)

MESSAGE (OBJECT)

MODULE (OBJECT)

NODE (OBJECT)

REASON (CONDITION)

REMOTE-NODE-HOST (OBJECT)

REMOTE-NODE-PORT (OBJECT)

REMOTE-NODE-SOCKET (OBJECT)

TO-NAME (OBJECT)

TO-PID (OBJECT)

TRACE-TOKEN (OBJECT)

Private

Undocumented

REMOTE-NODE-ATOM-CACHE (OBJECT)

VARIABLE

Public

*ATOM-SYMBOL-PACKAGE*

The package in which atom symbols are interned. Symbols are uninterned if NIL.

*ERLANG-FALSE-IS-LISP-NIL*

Interpret the Erlang 'false' as NIL instead of '|false| in Lisp.

*ERLANG-STRING-IS-LISP-STRING*

Interpret an Erlang string as Lisp string instead of a Lisp list.

*ERLANG-TRUE-IS-LISP-T*

Interpret the Erlang 'true' as T instead of '|true| in Lisp.

*LISP-NIL-AT-TAIL-IS-ERLANG-EMPTY-LIST*

Send the Lisp NIL at the tail of a list to Erlang as the empty list instead of as a symbol.

*LISP-NIL-IS-ERLANG-EMPTY-LIST*

Send the Lisp NIL to Erlang as the empty list instead of as a symbol.

*LISP-NIL-IS-ERLANG-FALSE*

Send the Lisp NIL to Erlang as 'false' instead of 'NIL'.

*LISP-STRING-IS-ERLANG-BINARY*

Send a Lisp string to Erlang as a binary instead of a list.

*LISP-T-IS-ERLANG-TRUE*

Send the Lisp T to Erlang as 'true' instead of 'T'.

Private

*ATOM-CACHE*

An atom cache.

*LISTENING-SOCKET*

The listening socket. NIL if not listening.

*REMOTE-NODES*

Remote nodes connected to.

*THIS-NODE*

The name and host for this node.

Undocumented

*PID-ID-COUNTER*

*REFERENCE-ID-COUNTER*

CLASS

Public

ERLANG-BINARY

Erlang binary.

ERLANG-EXTERNAL-FUN

Erlang fun in external format (module:function/arity).

ERLANG-NEW-INTERNAL-FUN

Erlang fun in new internal format.

ERLANG-OLD-INTERNAL-FUN

Erlang fun in old internal-format

ERLANG-PID

Erlang PID.

ERLANG-PORT

Erlang port.

ERLANG-REFERENCE

Erlang ref.

ERLANG-TUPLE

Erlang tuple.

EXIT

EXIT Control Message.

EXIT2

EXIT2 Control Message.

GROUP-LEADER

GROUP_LEADER Control Message.

REG-SEND (FROM-PID TO-NAME NODE MESSAGE)

REG_SEND Control Message.

REMOTE-NODE

A representation of a remote node.

SEND (TO-PID MESSAGE)

SEND Control Message.

Private

ATOM-CACHE

Erlang atom cache

Undocumented

CONTROL-MESSAGE

CONDITION

Public

ALREADY-LISTENING-ON-SOCKET

This error is signaled when trying to listen on a socket when already listening on an existing socket.

CONNECTION-CLOSED-ERROR

This error is signaled when trying to read from a socket stream that has been closed.

HANDSHAKE-FAILED-ERROR

This error is signaled if the handshake during connection to a remote node fails.

MALFORMED-EXTERNAL-ERLANG-TERM-ERROR

This error is signaled when an encoded Erlang term is malformed.

NODE-UNREACHABLE-ERROR

This error is signaled when trying to connect to a node that is unreachable.

NOT-IMPLEMENTED-ERROR

The signaling function is not implemented yet.

NOT-LISTENING-ON-SOCKET

This condition is signaled when trying to accept connections with a listening socket.

TRY-AGAIN

This condition is signaled when trying to connect to a remote node that is busy.

UNEXPECTED-MESSAGE-TAG-ERROR

This error is signaled when an unexpected message tag is read.

UNTRANSLATABLE-LISP-OBJECT-ERROR

This error is signaled when trying to encode an unencodable object.

CONSTANT

Public

+HIGHEST-VERSION-SUPPORTED+

Highest version of the Erlang distribution protocol supported.

+LOWEST-VERSION-SUPPORTED+

Lowest version of the Erlang distribution protocol supported.

Private

Undocumented

+CM-EXIT+

+CM-EXIT-TT+

+CM-EXIT2+

+CM-EXIT2-TT+

+CM-GROUP-LEADER+

+CM-REG-SEND+

+CM-REG-SEND-TT+

+CM-SEND+

+CM-SEND-TT+

+DFLAG-ATOM-CACHE+

+DFLAG-BIT-BINARIES+

+DFLAG-DIST-HDR-ATOM-CACHE+

+DFLAG-DIST-MONITOR+

+DFLAG-DIST-MONITOR-NAME+

+DFLAG-EXPORT-PTR-TAG+

+DFLAG-EXTENDED-PIDS-PORTS+

+DFLAG-EXTENDED-REFERENCES+

+DFLAG-FUN-TAGS+

+DFLAG-HIDDEN-ATOM-CACHE+

+DFLAG-NEW-FLOATS+

+DFLAG-NEW-FUN-TAGS+

+DFLAG-PUBLISHED+

+DFLAG-SMALL-ATOM-TAGS+

+DFLAG-UNICODE-IO+

+DISTRIBUTION-HEADER-TAG+

+PASS-THROUGH+

+PROTOCOL-VERSION+

+TOCK+