/* (c) 1999-2005, Rony G. Flatscher, Wirtschaftsuniversitaet Wien, Austria Europe
   A *possible* solution to excercise # 17
*/

.test~~new("Anton") ~~new("Berta") ~~new("Caesar")

SAY "Before synchroneous broadcast..."
.test~broadcast( .message~new(.nil, "say_info"), .true )
SAY "after synchroneous broadcast."
SAY

SAY "Before Asynchroneous broadcast..."
.test~broadcast( .message~new(.nil, "say_info"))
SAY "after asynchroneous broadcast."

::REQUIRES "solution_17.cls"

/* --------------------------- Test-Class -------------------------------- */
::CLASS test            METACLASS Manager

/* --------------------------- Class Methods ----------------------------- */
::METHOD Init           CLASS
  EXPOSE counter
  counter=0
  self~init:super

::METHOD count          CLASS
  EXPOSE counter
  counter=counter+1
  RETURN counter

/* --------------------------- Instance Methods -------------------------- */
::METHOD Init
  EXPOSE  name number
  USE ARG name
  number=self~class~count
  self~init:super

::METHOD name                 ATTRIBUTE

::METHOD say_info
  EXPOSE number
  SAY " SAY_INFO - name:" self~name "created as #" number