summaryrefslogtreecommitdiff
path: root/module/cfgfile.m
blob: 4aff004a3c2c9efa710f599b4027553669e9716f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#
# simple adt that operates on whitespace separated config files
# such as /services/webget/config
#
CfgFile: module
{
	PATH: con	"/dis/lib/cfgfile.dis";
	ConfigFile: adt
	{
		getcfg:	fn(me: self ref ConfigFile,field:string):list of string;
		setcfg:	fn(me: self ref ConfigFile,field:string,val:string);
		delete:	fn(me: self ref ConfigFile,field:string);
		flush:	fn(me: self ref ConfigFile): string;

		 # ----- private ------
		lines:	list of string;
		file:	string;
		readonly:	int;
	};

	init:	fn(file:string):ref ConfigFile;
	verify:	fn(defaultpath: string, path: string) :ref Sys->FD;
};