summaryrefslogtreecommitdiff
path: root/module/plumbmsg.m
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2006-12-22 20:52:35 +0000
committerCharles.Forsyth <devnull@localhost>2006-12-22 20:52:35 +0000
commit46439007cf417cbd9ac8049bb4122c890097a0fa (patch)
tree6fdb25e5f3a2b6d5657eb23b35774b631d4d97e4 /module/plumbmsg.m
parent37da2899f40661e3e9631e497da8dc59b971cbd0 (diff)
20060303-partial
Diffstat (limited to 'module/plumbmsg.m')
-rw-r--r--module/plumbmsg.m44
1 files changed, 44 insertions, 0 deletions
diff --git a/module/plumbmsg.m b/module/plumbmsg.m
new file mode 100644
index 00000000..cec82b51
--- /dev/null
+++ b/module/plumbmsg.m
@@ -0,0 +1,44 @@
+Plumbmsg: module
+{
+ PATH: con "/dis/lib/plumbmsg.dis";
+
+ # Message format:
+ # source application\n
+ # destination application\n
+ # working directory\n
+ # type\n
+ # properties\n
+ # nbytes\n
+ # n bytes
+
+ Msg: adt
+ {
+ src: string;
+ dst: string;
+ dir: string;
+ kind: string;
+ attr: string;
+ data: array of byte;
+
+ # used by applications
+ send: fn(msg: self ref Msg): int;
+ recv: fn(): ref Msg;
+
+ # used by plumb and send, recv
+ pack: fn(msg: self ref Msg): array of byte;
+ unpack: fn(b: array of byte): ref Msg;
+ };
+
+ Attr: adt
+ {
+ name: string;
+ val: string;
+ };
+
+ init: fn(doinput: int, rcvport: string, maxdata: int): int;
+ shutdown: fn();
+
+ string2attrs: fn(s: string): list of ref Attr;
+ attrs2string: fn(l: list of ref Attr): string;
+ lookup: fn(attrs: list of ref Attr, name: string): (int, string);
+};