1*46439007SCharles.Forsyth# 2*46439007SCharles.Forsyth# simple adt that operates on whitespace separated config files 3*46439007SCharles.Forsyth# such as /services/webget/config 4*46439007SCharles.Forsyth# 5*46439007SCharles.ForsythCfgFile: module 6*46439007SCharles.Forsyth{ 7*46439007SCharles.Forsyth PATH: con "/dis/lib/cfgfile.dis"; 8*46439007SCharles.Forsyth ConfigFile: adt 9*46439007SCharles.Forsyth { 10*46439007SCharles.Forsyth getcfg: fn(me: self ref ConfigFile,field:string):list of string; 11*46439007SCharles.Forsyth setcfg: fn(me: self ref ConfigFile,field:string,val:string); 12*46439007SCharles.Forsyth delete: fn(me: self ref ConfigFile,field:string); 13*46439007SCharles.Forsyth flush: fn(me: self ref ConfigFile): string; 14*46439007SCharles.Forsyth 15*46439007SCharles.Forsyth # ----- private ------ 16*46439007SCharles.Forsyth lines: list of string; 17*46439007SCharles.Forsyth file: string; 18*46439007SCharles.Forsyth readonly: int; 19*46439007SCharles.Forsyth }; 20*46439007SCharles.Forsyth 21*46439007SCharles.Forsyth init: fn(file:string):ref ConfigFile; 22*46439007SCharles.Forsyth verify: fn(defaultpath: string, path: string) :ref Sys->FD; 23*46439007SCharles.Forsyth}; 24