/* 1999-2003, Rony G. Flatscher, Wirtschaftsuniversitaet Wien, Austria, Europe A *possible* solution to excercise: 12 (1) */ ::CLASS Manager SUBCLASS Class PUBLIC ::METHOD Init EXPOSE Managed_Objects Managed_Objects = .bag~new self~init:super ::METHOD Managed_Objects ATTRIBUTE ::METHOD New FORWARD CLASS (super) CONTINUE tmpObj = RESULT self~Managed_Objects~put(tmpObj) RETURN tmpObj ::METHOD Broadcast USE ARG message, bSynchroneously bSynchroneously = (bSynchroneously=.true) IF bSynchroneously THEN SAY "Manager.Broadcast: invoking messages synchroneously..." ELSE SAY "Manager.Broadcast: invoking messages asynchroneously..." DO item OVER self~Managed_Objects IF bSynchroneously THEN message~copy~send(item) ELSE message~copy~start(item) END