/* Exclusion Server - DMS - feb 98 - by Sylvain HUET */ typeof exclu=[[CLIENT DMI S] r1];; fun exclubycli(a,b)=let a->[c _ _] in b==c;; fun activate(from,cli,action,param,rep)= if !_DMSclientAlive cli then nil else let search_in_list exclu @exclubycli cli -> a in (if a==nil then nil else let a->[_ d r] in if from==d then nil else _DMSreply this cli d r nil nil; set exclu=[cli from rep]::remove_from_list exclu a); 0;; fun logout(cli)= set exclu=remove_from_list exclu search_in_list exclu @exclubycli cli; 0;; fun IniDMI(param)= _DMSregisterDMI this @activate @logout nil nil;;