forsyth20121205-174063a80cc13 years agoHistory
44 lines · 1.2 KB · Objective-C
RawDownload
Registries: module {	PATH:	con "/dis/lib/registries.dis";	init:			fn(); 	Attributes: adt {		attrs: list of (string, string); 		get:	fn(a: self ref Attributes, attr: string): string;		set:	fn(a: self ref Attributes, attr, val: string);		new:	fn(attrs: list of (string, string)): ref Attributes;	}; 	Attached: adt {		fd:			ref Sys->FD;		signerpkhash:	string;		localuser:		string;		remoteuser:	string;	}; 	Service: adt {		addr: string;			# dial this to connect to the service.		attrs: ref Attributes;		# information about the nature of the service. 		attach:	fn(s: self ref Service, user: string, keydir: string): ref Attached;	}; 	Registered: adt {		addr:	string;		reg:		ref Registry;		fd:		ref Sys->FD;	}; 	Registry: adt {		dir:		string;		indexfd:	ref Sys->FD; 		new:		fn(dir: string): ref Registry;		connect:	fn(svc: ref Service, user: string, keydir: string): ref Registry;		services:	fn(r: self ref Registry): (list of ref Service, string);		find:		fn(r: self ref Registry, a: list of (string, string)): (list of ref Service, string);		register:	fn(r: self ref Registry, addr: string, attrs: ref Attributes, persist: int): (ref Registered, string);		unregister:	fn(r: self ref Registry, addr: string): string;	};};