Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (8) — Plan9 3rd Edition (Vita Nuova)

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

plumb(1)

wm(1)

plumbmsg(2)

plumbing(6)

PLUMBER(8)

NAME

plumber − plumber for interapplication message routing

SYNOPSIS

­lib/plumber [ ­-w ] [ ­rulefile ...  ]

DESCRIPTION

­Plumber provides high-level message-passing between applications.  In a plumbed environment, applications can receive messages on an input port, which is given a logical name.  Messages are not sent directly between applications but are routed via the plumber, following user-specified rules. 

­Plumber is typically started by wm(1)’s startup script. It reads each ­rulefile (default: /usr/user/lib/plumbing) in turn.  Each file has the form described in plumbing(6); the rules direct the routing of each message ­plumber receives.  ­Plumber then lurks in the background with its mate, awaiting plumbing requests sent by plumbmsg(2), by windowing applications in response to events such as button clicks or drag-and-drop, or by plumb(1).

When a message arrives, ­plumber applies the rules to decide how to route it.  It forwards the message to the selected application’s input port, starting it if necessary.  If no rule applies (or some other error occurs), ­plumber returns an error to the message’s sender. 

­Plumber normally starts applications directly.  For use on devices that have specialised window managers, not wm(1), the ­-w option causes ­plumber to start applications indirectly, by sending a message to a window manager listening on /chan/wm, allowing the window manager to track every application started. 

FILES

/usr/user/lib/plumbing
default plumbing rules for ­user

SOURCE

­/appl/lib/plumber.b
­/appl/lib/plumbing.b

SEE ALSO

plumb(1), wm(1), plumbmsg(2), plumbing(6)

Plan 9  —  June 07, 2000

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026