The cl-myriam Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-myriam Reference Manual

This is the cl-myriam Reference Manual, version 0.1.3, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 03:59:39 2022 GMT+0.

Table of Contents


1 Introduction

cl-myriam

myriam is a simple attempt at implementing the actor model for secure, distributed programming. Feedback is very welcome!

This is a Common Lisp port of my myriam Chicken Scheme egg. It's already at feature parity with its Scheme sister, aside from the ability to send functions/closures (and obviously, no continuations either), and uses ZMQ instead of NNG for messaging, which means we can make use of CurveZMQ for easier encryption and (some) authentication.

The API is very much unstable at the moment.

Requirements

Myriam stands on the shoulders of giants.

Usage

cl-myriam is on Quicklisp, so you can load it with (ql:quickload :cl-myriam).

Otherwise, you can load the :cl-myriam system directly and require the :myriam package. Everything you need is in there.

Make sure to check the tests folder for examples.

spawn

(spawn &rest actions) -> (values string thread)

Spawn an actor and return its address and thread. If no actions are specified, the actor will only react to predefined actions.

action

(action name task &optional context) -> action

Create an action for an actor definition. name should be a keyword. task should be a function with any number of arguments (or no arguments). context should be either :sync, :async or :any and defaults to :async; it specifies the context in which a task can be executed, e.g. :sync tasks will be executed synchronously and it's what you'll want if you expect to get a value out of them.

msg

(msg head &rest body) -> message

Create a message to be sent to an actor. head should be a keyword corresponding to the name of a task defined in the target actor. Arguments in body, if any, will be passed to the task to be executed.

send and send*

(send address msg)

(send* address msg) -> (or * (values nil nil))

Send a message to an actor to be executed either in an asynchronous (send) or synchronous (send*) context. msg should correspond in context, task name and number of arguments with the target task.

About identities

Identities encapsulate encryption keys. A self-identity contains both a public and secret key, while a public-identity contains only a public key.

Actors are spawned with the self-identity inside *current-self-identity* (which means that many actors can share the same identity, if you want). Outgoing messages need *target-public-identity* to be set with a public-identity for encryption.

make-self-identity

(make-self-identity) -> self-identity

Make a self-identity with a keypair.

self->public-identity

(self->public-identity self-id) -> public-identity

Make a public-identity from the public key in self-id.

with-self-identity

(with-self-identity id &body body)

Execute body with *current-self-identity* set with self-identity id.

with-target-identity

(with-target-identity id &body body)

Execute body with *target-public-identity* set with public-identity id.

Messaging

ping

(send address (msg :ping))

Check if an actor is alive.

stop

(send address (msg :stop))

Stop an actor.

store

(send address (msg :store key datum))

Store datum into an actor's internal storage. key should be a keyword.

fetch

(send address (msg :fetch key))

Fetch a value from an actor's internal storage, or nil of there is no such value. key should be a keyword.

*self*

Dynamic variable useful for referring to an actor's self address.

*send-timeout*

Time to wait for a reply before killing the connection.

Authentication

By default, actors accept all incoming messages. You need to spawn an authenticator to filter out connections based on host and identities.

spawn-authenticator

(spawn-authenticator accept-p &optional name) -> (values bt:thread name)

Spawn an authenticator (a ZAP server). accept-p should be a predicate which takes an IP address and the public key of the authenticating client (as a byte vector); an incoming connection will be either accepted or rejected based on the result of accept-p. Name shoule be a unique string and it can be used for terminating the authenticator. You can only spawn a single authenticator per context, see below.

kill authenticator

(kill-authenticator name)

Kill the given authenticator.

authenticator-alive-p

(authenticator-alive-p name) -> boolean

Test if the authenticator with the given name is alive.

Contexts

Contexts allow you to separate actor groups with different authentication parameters. Without contexts, you're limited to one authenticator per application.

(defparameter a
  (myr:with-new-context
    (let ((authenticator (myr:spawn-authenticator
                          (lambda (ip key)
                            (declare (ignore key))
                            (string= ip "127.0.0.1")))))
      (declare (ignore authenticator))
      (myr:spawn))))

In this example, a will only accept connections from localhost.

with-new-context

(with-new-context &body forms)

Execute forms in a fresh context. Mostly used to spawn actors under an authenticator with specific parameters.

Utilities

change-host

(change-host address new-host) -> valid-address

Replace the host in address for new-host.

all-actors

(all-actors) -> list

Get a list of all local actors.

stop-all-actors

(stop-all-actors)

Stop all local actors.

Notes

Current limitations/caveats


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 cl-myriam

Simple actor model implementation for local and remote actors

Author

Ariela Wenner

License

3-clause BSD

Version

0.1.3

Dependencies
  • babel (system).
  • bordeaux-threads (system).
  • cl-conspack (system).
  • cl-ppcre (system).
  • lparallel (system).
  • pzmq (system).
  • serapeum (system).
  • str (system).
  • uuid (system).
  • usocket (system).
  • sha3 (system).
Source

cl-myriam.asd.

Child Components

3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 cl-myriam/src

Dependency

package.lisp (file).

Source

cl-myriam.asd.

Parent Component

cl-myriam (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

4.1.1 cl-myriam/cl-myriam.asd

Source

cl-myriam.asd.

Parent Component

cl-myriam (system).

ASDF Systems

cl-myriam.


4.1.2 cl-myriam/package.lisp

Source

cl-myriam.asd.

Parent Component

cl-myriam (system).

Packages

myriam.


4.1.3 cl-myriam/src/utils.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.4 cl-myriam/src/conditions.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Internals

4.1.5 cl-myriam/src/address.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Public Interface

change-host (function).

Internals

4.1.6 cl-myriam/src/identity.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.7 cl-myriam/src/context.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Public Interface

with-new-context (macro).

Internals

*context* (special variable).


4.1.8 cl-myriam/src/authentication.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.9 cl-myriam/src/messaging.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.10 cl-myriam/src/action.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.11 cl-myriam/src/actors.lisp

Source

cl-myriam.asd.

Parent Component

src (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

5.1 myriam

Source

package.lisp.

Nickname

myr

Use List

common-lisp.

Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


Next: , Previous: , Up: Public Interface   [Contents][Index]

6.1.1 Special variables

Special Variable: *current-self-identity*
Package

myriam.

Source

identity.lisp.

Special Variable: *print-internal-actor-error-messages*

if not nil, print error messages when they occur inside an actor

Package

myriam.

Source

actors.lisp.

Special Variable: *self*
Package

myriam.

Source

actors.lisp.

Special Variable: *send-timeout*
Package

myriam.

Source

messaging.lisp.

Special Variable: *target-public-identity*
Package

myriam.

Source

identity.lisp.


6.1.2 Macros

Macro: with-new-context (&body body)
Package

myriam.

Source

context.lisp.

Macro: with-self-identity (self-id &rest body)
Package

myriam.

Source

identity.lisp.

Macro: with-target-identity (id &rest body)
Package

myriam.

Source

identity.lisp.


6.1.3 Ordinary functions

Function: action (name task &optional context)

helper to make an instance of an action

Package

myriam.

Source

action.lisp.

Function: all-actors ()
Package

myriam.

Source

utils.lisp.

Function: authenticator-alive-p (name)
Package

myriam.

Source

authentication.lisp.

Function: change-host (address new-host)
Package

myriam.

Source

address.lisp.

Function: kill-authenticator (name)
Package

myriam.

Source

authentication.lisp.

Function: make-self-identity ()
Package

myriam.

Source

identity.lisp.

Function: msg (head &rest body)

Build a message. head should be a keyword symbol

Package

myriam.

Source

messaging.lisp.

Function: self->public-identity (self-id)
Package

myriam.

Source

identity.lisp.

Function: send (actor msg)

send a message to an actor to perform an asychronous task

Package

myriam.

Source

messaging.lisp.

Function: send* (actor msg)

send a message to an actor to perform a synchronous task and get a result

Package

myriam.

Source

messaging.lisp.

Function: spawn (&rest actions)

spawn an actor, return its address and running thread

Package

myriam.

Source

actors.lisp.

Function: spawn-authenticator (accept-p &optional name)

Spawn an authenticator that will use accept-p (which should be a predicate that takes an IP address and a public key as a byte vector) to either accept or reject incoming connections. Name, if given, should be a unique string.

Package

myriam.

Source

authentication.lisp.

Function: stop-all-actors ()
Package

myriam.

Source

utils.lisp.


6.1.4 Generic functions

Generic Reader: public-identity-hash (object)
Package

myriam.

Methods
Reader Method: public-identity-hash ((public-identity public-identity))

automatically generated reader method

Source

identity.lisp.

Target Slot

hash.

Generic Writer: (setf public-identity-hash) (object)
Package

myriam.

Methods
Writer Method: (setf public-identity-hash) ((public-identity public-identity))

automatically generated writer method

Source

identity.lisp.

Target Slot

hash.

Generic Reader: public-identity-key (object)
Package

myriam.

Methods
Reader Method: public-identity-key ((public-identity public-identity))

automatically generated reader method

Source

identity.lisp.

Target Slot

public-key.

Generic Writer: (setf public-identity-key) (object)
Package

myriam.

Methods
Writer Method: (setf public-identity-key) ((public-identity public-identity))

automatically generated writer method

Source

identity.lisp.

Target Slot

public-key.

Generic Reader: self-identity-hash (object)
Package

myriam.

Methods
Reader Method: self-identity-hash ((self-identity self-identity))

automatically generated reader method

Source

identity.lisp.

Target Slot

hash.

Generic Writer: (setf self-identity-hash) (object)
Package

myriam.

Methods
Writer Method: (setf self-identity-hash) ((self-identity self-identity))

automatically generated writer method

Source

identity.lisp.

Target Slot

hash.

Generic Reader: self-identity-public-key (object)
Package

myriam.

Methods
Reader Method: self-identity-public-key ((self-identity self-identity))

automatically generated reader method

Source

identity.lisp.

Target Slot

public-key.

Generic Writer: (setf self-identity-public-key) (object)
Package

myriam.

Methods
Writer Method: (setf self-identity-public-key) ((self-identity self-identity))

automatically generated writer method

Source

identity.lisp.

Target Slot

public-key.

Generic Reader: self-identity-secret-key (object)
Package

myriam.

Methods
Reader Method: self-identity-secret-key ((self-identity self-identity))

automatically generated reader method

Source

identity.lisp.

Target Slot

secret-key.

Generic Writer: (setf self-identity-secret-key) (object)
Package

myriam.

Methods
Writer Method: (setf self-identity-secret-key) ((self-identity self-identity))

automatically generated writer method

Source

identity.lisp.

Target Slot

secret-key.


6.1.5 Standalone methods

Method: encode-object ((object message) &key &allow-other-keys)
Package

conspack.

Source

messaging.lisp.


6.1.6 Classes

Class: action
Package

myriam.

Source

action.lisp.

Direct methods
Direct slots
Slot: name
Type

keyword

Initargs

:name

Readers

action-name.

Writers

(setf action-name).

Slot: task
Type

function

Initargs

:task

Readers

action-task.

Writers

(setf action-task).

Slot: context
Type

myriam::action-context-t

Initform

:async

Initargs

:context

Readers

action-context.

Writers

(setf action-context).

Class: public-identity
Package

myriam.

Source

identity.lisp.

Direct methods
Direct slots
Slot: public-key
Type

(simple-array (unsigned-byte 8) (32))

Initargs

:public-key

Readers

public-identity-key.

Writers

(setf public-identity-key).

Slot: hash
Type

string

Initargs

:hash

Readers

public-identity-hash.

Writers

(setf public-identity-hash).

Class: self-identity
Package

myriam.

Source

identity.lisp.

Direct methods
Direct slots
Slot: public-key
Type

(simple-array (unsigned-byte 8) (32))

Initargs

:public-key

Readers

self-identity-public-key.

Writers

(setf self-identity-public-key).

Slot: secret-key
Type

(simple-array (unsigned-byte 8) (32))

Initargs

:secret-key

Readers

self-identity-secret-key.

Writers

(setf self-identity-secret-key).

Slot: hash
Type

string

Initargs

:hash

Readers

self-identity-hash.

Writers

(setf self-identity-hash).


6.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.1 Special variables

Special Variable: *actions*
Package

myriam.

Source

actors.lisp.

Special Variable: *address-scanner*
Package

myriam.

Source

address.lisp.

Special Variable: *context*
Package

myriam.

Source

context.lisp.

Special Variable: *storage*
Package

myriam.

Source

actors.lisp.

Special Variable: *storage-lock*
Package

myriam.

Source

actors.lisp.

Special Variable: *trust-store*
Package

myriam.

Source

identity.lisp.

Special Variable: *trust-store-lock*
Package

myriam.

Source

identity.lisp.


6.2.2 Macros

Macro: with-actor-parameters (&rest body)
Package

myriam.

Source

actors.lisp.

Macro: with-timeout (timeout &body body)
Package

myriam.

Source

utils.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.3 Ordinary functions

Function: action-context-p (x)
Package

myriam.

Source

action.lisp.

Function: actor-loop ()
Package

myriam.

Source

actors.lisp.

Function: address->binding (address)
Package

myriam.

Source

address.lisp.

Function: address-p (obj)
Package

myriam.

Source

address.lisp.

Function: address-tokens (address)
Package

myriam.

Source

address.lisp.

Function: authenticator-thread (name)
Package

myriam.

Source

authentication.lisp.

Function: fetch-value* (key)
Package

myriam.

Source

actors.lisp.

Function: hash-blob (blob)
Package

myriam.

Source

identity.lisp.

Function: kernel-setup ()
Package

myriam.

Source

utils.lisp.

Function: make-address (&optional port)
Package

myriam.

Source

address.lisp.

Function: make-public-identity (pkey)
Package

myriam.

Source

identity.lisp.

Function: make-random-port ()
Package

myriam.

Source

address.lisp.

Function: message-context-p (x)
Package

myriam.

Source

messaging.lisp.

Function: message-handle (obj)
Package

myriam.

Source

actors.lisp.

Function: post (actor msg &key context)

send a message to an actor

Package

myriam.

Source

messaging.lisp.

Function: receive-and-process-auth-request (socket accept-p)
Package

myriam.

Source

authentication.lisp.

Function: store-public-identity (id)
Package

myriam.

Source

identity.lisp.

Function: store-value* (key value)
Package

myriam.

Source

actors.lisp.

Function: string-uuid ()
Package

myriam.

Source

utils.lisp.

Function: valid-message-p (msg)

check if this is a valid message in the correct context

Package

myriam.

Source

actors.lisp.

Function: valid-predefined-message-p (msg)

check if this is a predefined message with the correct context - we conly care about :fetch for now

Package

myriam.

Source

actors.lisp.

Function: wrap-task (task message)

wrap task according to its context

Package

myriam.

Source

actors.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.4 Generic functions

Generic Reader: action-context (object)
Package

myriam.

Methods
Reader Method: action-context ((action action))

automatically generated reader method

Source

action.lisp.

Target Slot

context.

Generic Writer: (setf action-context) (object)
Package

myriam.

Methods
Writer Method: (setf action-context) ((action action))

automatically generated writer method

Source

action.lisp.

Target Slot

context.

Generic Reader: action-name (object)
Package

myriam.

Methods
Reader Method: action-name ((action action))

automatically generated reader method

Source

action.lisp.

Target Slot

name.

Generic Writer: (setf action-name) (object)
Package

myriam.

Methods
Writer Method: (setf action-name) ((action action))

automatically generated writer method

Source

action.lisp.

Target Slot

name.

Generic Reader: action-task (object)
Package

myriam.

Methods
Reader Method: action-task ((action action))

automatically generated reader method

Source

action.lisp.

Target Slot

task.

Generic Writer: (setf action-task) (object)
Package

myriam.

Methods
Writer Method: (setf action-task) ((action action))

automatically generated writer method

Source

action.lisp.

Target Slot

task.

Generic Reader: message-body (object)
Package

myriam.

Methods
Reader Method: message-body ((message message))

automatically generated reader method

Source

messaging.lisp.

Target Slot

body.

Generic Writer: (setf message-body) (object)
Package

myriam.

Methods
Writer Method: (setf message-body) ((message message))

automatically generated writer method

Source

messaging.lisp.

Target Slot

body.

Generic Reader: message-context (object)
Package

myriam.

Methods
Reader Method: message-context ((message message))

automatically generated reader method

Source

messaging.lisp.

Target Slot

context.

Generic Writer: (setf message-context) (object)
Package

myriam.

Methods
Writer Method: (setf message-context) ((message message))

automatically generated writer method

Source

messaging.lisp.

Target Slot

context.

Generic Reader: message-head (object)
Package

myriam.

Methods
Reader Method: message-head ((message message))

automatically generated reader method

Source

messaging.lisp.

Target Slot

head.

Generic Writer: (setf message-head) (object)
Package

myriam.

Methods
Writer Method: (setf message-head) ((message message))

automatically generated writer method

Source

messaging.lisp.

Target Slot

head.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.5 Conditions

Condition: encryption-failed

Could not encrypt message with keys from our trust store.

Package

myriam.

Source

conditions.lisp.

Direct superclasses

error.

Condition: invalid-message

An invalid message received/attemped to be sent.

Package

myriam.

Source

conditions.lisp.

Direct superclasses

error.

Condition: self-identity-not-set

Self identity has not been set.

Package

myriam.

Source

conditions.lisp.

Direct superclasses

error.

Condition: target-identity-not-set

Target identity has not been set.

Package

myriam.

Source

conditions.lisp.

Direct superclasses

error.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.6 Classes

Class: message
Package

myriam.

Source

messaging.lisp.

Direct methods
Direct slots
Slot: head
Type

keyword

Initargs

:head

Readers

message-head.

Writers

(setf message-head).

Slot: body
Type

list

Initargs

:body

Readers

message-body.

Writers

(setf message-body).

Slot: context
Type

myriam::message-context-t

Initform

:async

Initargs

:context

Readers

message-context.

Writers

(setf message-context).


Previous: , Up: Internals   [Contents][Index]

6.2.7 Types

Type: action-context-t ()
Package

myriam.

Source

action.lisp.

Type: message-context-t ()
Package

myriam.

Source

messaging.lisp.

Type: valid-address ()
Package

myriam.

Source

address.lisp.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
A   C   E   F   G   H   K   M   P   R   S   V   W  
Index Entry  Section

(
(setf action-context): Private generic functions
(setf action-context): Private generic functions
(setf action-name): Private generic functions
(setf action-name): Private generic functions
(setf action-task): Private generic functions
(setf action-task): Private generic functions
(setf message-body): Private generic functions
(setf message-body): Private generic functions
(setf message-context): Private generic functions
(setf message-context): Private generic functions
(setf message-head): Private generic functions
(setf message-head): Private generic functions
(setf public-identity-hash): Public generic functions
(setf public-identity-hash): Public generic functions
(setf public-identity-key): Public generic functions
(setf public-identity-key): Public generic functions
(setf self-identity-hash): Public generic functions
(setf self-identity-hash): Public generic functions
(setf self-identity-public-key): Public generic functions
(setf self-identity-public-key): Public generic functions
(setf self-identity-secret-key): Public generic functions
(setf self-identity-secret-key): Public generic functions

A
action: Public ordinary functions
action-context: Private generic functions
action-context: Private generic functions
action-context-p: Private ordinary functions
action-name: Private generic functions
action-name: Private generic functions
action-task: Private generic functions
action-task: Private generic functions
actor-loop: Private ordinary functions
address->binding: Private ordinary functions
address-p: Private ordinary functions
address-tokens: Private ordinary functions
all-actors: Public ordinary functions
authenticator-alive-p: Public ordinary functions
authenticator-thread: Private ordinary functions

C
change-host: Public ordinary functions

E
encode-object: Public standalone methods

F
fetch-value*: Private ordinary functions
Function, action: Public ordinary functions
Function, action-context-p: Private ordinary functions
Function, actor-loop: Private ordinary functions
Function, address->binding: Private ordinary functions
Function, address-p: Private ordinary functions
Function, address-tokens: Private ordinary functions
Function, all-actors: Public ordinary functions
Function, authenticator-alive-p: Public ordinary functions
Function, authenticator-thread: Private ordinary functions
Function, change-host: Public ordinary functions
Function, fetch-value*: Private ordinary functions
Function, hash-blob: Private ordinary functions
Function, kernel-setup: Private ordinary functions
Function, kill-authenticator: Public ordinary functions
Function, make-address: Private ordinary functions
Function, make-public-identity: Private ordinary functions
Function, make-random-port: Private ordinary functions
Function, make-self-identity: Public ordinary functions
Function, message-context-p: Private ordinary functions
Function, message-handle: Private ordinary functions
Function, msg: Public ordinary functions
Function, post: Private ordinary functions
Function, receive-and-process-auth-request: Private ordinary functions
Function, self->public-identity: Public ordinary functions
Function, send: Public ordinary functions
Function, send*: Public ordinary functions
Function, spawn: Public ordinary functions
Function, spawn-authenticator: Public ordinary functions
Function, stop-all-actors: Public ordinary functions
Function, store-public-identity: Private ordinary functions
Function, store-value*: Private ordinary functions
Function, string-uuid: Private ordinary functions
Function, valid-message-p: Private ordinary functions
Function, valid-predefined-message-p: Private ordinary functions
Function, wrap-task: Private ordinary functions

G
Generic Function, (setf action-context): Private generic functions
Generic Function, (setf action-name): Private generic functions
Generic Function, (setf action-task): Private generic functions
Generic Function, (setf message-body): Private generic functions
Generic Function, (setf message-context): Private generic functions
Generic Function, (setf message-head): Private generic functions
Generic Function, (setf public-identity-hash): Public generic functions
Generic Function, (setf public-identity-key): Public generic functions
Generic Function, (setf self-identity-hash): Public generic functions
Generic Function, (setf self-identity-public-key): Public generic functions
Generic Function, (setf self-identity-secret-key): Public generic functions
Generic Function, action-context: Private generic functions
Generic Function, action-name: Private generic functions
Generic Function, action-task: Private generic functions
Generic Function, message-body: Private generic functions
Generic Function, message-context: Private generic functions
Generic Function, message-head: Private generic functions
Generic Function, public-identity-hash: Public generic functions
Generic Function, public-identity-key: Public generic functions
Generic Function, self-identity-hash: Public generic functions
Generic Function, self-identity-public-key: Public generic functions
Generic Function, self-identity-secret-key: Public generic functions

H
hash-blob: Private ordinary functions

K
kernel-setup: Private ordinary functions
kill-authenticator: Public ordinary functions

M
Macro, with-actor-parameters: Private macros
Macro, with-new-context: Public macros
Macro, with-self-identity: Public macros
Macro, with-target-identity: Public macros
Macro, with-timeout: Private macros
make-address: Private ordinary functions
make-public-identity: Private ordinary functions
make-random-port: Private ordinary functions
make-self-identity: Public ordinary functions
message-body: Private generic functions
message-body: Private generic functions
message-context: Private generic functions
message-context: Private generic functions
message-context-p: Private ordinary functions
message-handle: Private ordinary functions
message-head: Private generic functions
message-head: Private generic functions
Method, (setf action-context): Private generic functions
Method, (setf action-name): Private generic functions
Method, (setf action-task): Private generic functions
Method, (setf message-body): Private generic functions
Method, (setf message-context): Private generic functions
Method, (setf message-head): Private generic functions
Method, (setf public-identity-hash): Public generic functions
Method, (setf public-identity-key): Public generic functions
Method, (setf self-identity-hash): Public generic functions
Method, (setf self-identity-public-key): Public generic functions
Method, (setf self-identity-secret-key): Public generic functions
Method, action-context: Private generic functions
Method, action-name: Private generic functions
Method, action-task: Private generic functions
Method, encode-object: Public standalone methods
Method, message-body: Private generic functions
Method, message-context: Private generic functions
Method, message-head: Private generic functions
Method, public-identity-hash: Public generic functions
Method, public-identity-key: Public generic functions
Method, self-identity-hash: Public generic functions
Method, self-identity-public-key: Public generic functions
Method, self-identity-secret-key: Public generic functions
msg: Public ordinary functions

P
post: Private ordinary functions
public-identity-hash: Public generic functions
public-identity-hash: Public generic functions
public-identity-key: Public generic functions
public-identity-key: Public generic functions

R
receive-and-process-auth-request: Private ordinary functions

S
self->public-identity: Public ordinary functions
self-identity-hash: Public generic functions
self-identity-hash: Public generic functions
self-identity-public-key: Public generic functions
self-identity-public-key: Public generic functions
self-identity-secret-key: Public generic functions
self-identity-secret-key: Public generic functions
send: Public ordinary functions
send*: Public ordinary functions
spawn: Public ordinary functions
spawn-authenticator: Public ordinary functions
stop-all-actors: Public ordinary functions
store-public-identity: Private ordinary functions
store-value*: Private ordinary functions
string-uuid: Private ordinary functions

V
valid-message-p: Private ordinary functions
valid-predefined-message-p: Private ordinary functions

W
with-actor-parameters: Private macros
with-new-context: Public macros
with-self-identity: Public macros
with-target-identity: Public macros
with-timeout: Private macros
wrap-task: Private ordinary functions

Jump to:   (  
A   C   E   F   G   H   K   M   P   R   S   V   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *  
B   C   H   N   P   S   T  
Index Entry  Section

*
*actions*: Private special variables
*address-scanner*: Private special variables
*context*: Private special variables
*current-self-identity*: Public special variables
*print-internal-actor-error-messages*: Public special variables
*self*: Public special variables
*send-timeout*: Public special variables
*storage*: Private special variables
*storage-lock*: Private special variables
*target-public-identity*: Public special variables
*trust-store*: Private special variables
*trust-store-lock*: Private special variables

B
body: Private classes

C
context: Public classes
context: Private classes

H
hash: Public classes
hash: Public classes
head: Private classes

N
name: Public classes

P
public-key: Public classes
public-key: Public classes

S
secret-key: Public classes
Slot, body: Private classes
Slot, context: Public classes
Slot, context: Private classes
Slot, hash: Public classes
Slot, hash: Public classes
Slot, head: Private classes
Slot, name: Public classes
Slot, public-key: Public classes
Slot, public-key: Public classes
Slot, secret-key: Public classes
Slot, task: Public classes
Special Variable, *actions*: Private special variables
Special Variable, *address-scanner*: Private special variables
Special Variable, *context*: Private special variables
Special Variable, *current-self-identity*: Public special variables
Special Variable, *print-internal-actor-error-messages*: Public special variables
Special Variable, *self*: Public special variables
Special Variable, *send-timeout*: Public special variables
Special Variable, *storage*: Private special variables
Special Variable, *storage-lock*: Private special variables
Special Variable, *target-public-identity*: Public special variables
Special Variable, *trust-store*: Private special variables
Special Variable, *trust-store-lock*: Private special variables

T
task: Public classes

Jump to:   *  
B   C   H   N   P   S   T  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   A   C   E   F   I   M   P   S   T   U   V  
Index Entry  Section

A
action: Public classes
action-context-t: Private types
action.lisp: The cl-myriam/src/action․lisp file
actors.lisp: The cl-myriam/src/actors․lisp file
address.lisp: The cl-myriam/src/address․lisp file
authentication.lisp: The cl-myriam/src/authentication․lisp file

C
cl-myriam: The cl-myriam system
cl-myriam.asd: The cl-myriam/cl-myriam․asd file
Class, action: Public classes
Class, message: Private classes
Class, public-identity: Public classes
Class, self-identity: Public classes
Condition, encryption-failed: Private conditions
Condition, invalid-message: Private conditions
Condition, self-identity-not-set: Private conditions
Condition, target-identity-not-set: Private conditions
conditions.lisp: The cl-myriam/src/conditions․lisp file
context.lisp: The cl-myriam/src/context․lisp file

E
encryption-failed: Private conditions

F
File, action.lisp: The cl-myriam/src/action․lisp file
File, actors.lisp: The cl-myriam/src/actors․lisp file
File, address.lisp: The cl-myriam/src/address․lisp file
File, authentication.lisp: The cl-myriam/src/authentication․lisp file
File, cl-myriam.asd: The cl-myriam/cl-myriam․asd file
File, conditions.lisp: The cl-myriam/src/conditions․lisp file
File, context.lisp: The cl-myriam/src/context․lisp file
File, identity.lisp: The cl-myriam/src/identity․lisp file
File, messaging.lisp: The cl-myriam/src/messaging․lisp file
File, package.lisp: The cl-myriam/package․lisp file
File, utils.lisp: The cl-myriam/src/utils․lisp file

I
identity.lisp: The cl-myriam/src/identity․lisp file
invalid-message: Private conditions

M
message: Private classes
message-context-t: Private types
messaging.lisp: The cl-myriam/src/messaging․lisp file
Module, src: The cl-myriam/src module
myriam: The myriam package

P
Package, myriam: The myriam package
package.lisp: The cl-myriam/package․lisp file
public-identity: Public classes

S
self-identity: Public classes
self-identity-not-set: Private conditions
src: The cl-myriam/src module
System, cl-myriam: The cl-myriam system

T
target-identity-not-set: Private conditions
Type, action-context-t: Private types
Type, message-context-t: Private types
Type, valid-address: Private types

U
utils.lisp: The cl-myriam/src/utils․lisp file

V
valid-address: Private types

Jump to:   A   C   E   F   I   M   P   S   T   U   V