A process ID is simply a wrapped string that looks like a file-path:
It is the simplest way of referring to another Process and can be used with all functions of the Process system. So for example to send a message to a process you would call:
ProcessId pid = "/root/user/my-process" tell(pid, "hello");
The ProcessId
has lots of helpers to make it easy to construct valid IDs.
[name]
Create a child ProcessId
var child = parent["child"]
/parent
/parent/child
Parent()
Step up to the parent var parent = child.Parent()
/parent/child
/parent
GetName()
Get the leaf ProcessName
var name = pid.GetName()
/parent/child
"child"
Skip(num)
Remove the first num
names var pid = pid.Skip(2)
/a/b/c
/c
Take(num)
Drop all after the next num
names var pid = pid.Take(2)
/a/b/c
/a/b
Head()
Take the first name var pid = pid.Head()
/a/b/c
/a
Tail()
Drop all after the first name var pid = pid.Tail()
/a/b/c
/b/c
Count()
Returns the number of names var pid = pid.Count()
/a/b/c
3 Append(pid)
Join two ProcessIds together var pid = pid.Append('/c/d')
/a/b
a/b/c/d
Process.Top
The root var pid = Process.Top["root"]["user"]
n/a /root/user
NOTE: A ProcessId
is made up of a series of ProcessName
values. A ProcessName
can also represent a set of ProcessId
values. This allows a for a ProcessId
that looks like so:
/root/user/[/proc,/something]/another
This type of ProcessId
is used by dispatchers to represent multiple Process endpoints in a single ProcessId
and to allow for any functionality that uses a ProcessId
to work with 0-n processes with the same API.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4