/test/language/agent/aux_agent33a.e
Specman e | 52 lines | 26 code | 5 blank | 21 comment | 0 complexity | 9468386c36cdafb2d20b2c966eaad8f4 MD5 | raw file
1-- This file is part of SmartEiffel The GNU Eiffel Compiler Tools and Libraries. 2-- See the Copyright notice at the end of this file. 3-- 4class AUX_AGENT33A[G] 5 6feature {ANY} 7 make 8 do 9 create subscribers.make(0, -1) 10 end 11 12 subscribers: ARRAY[ROUTINE[TUPLE[G]]] 13 14 subscribe (a_routine: ROUTINE[TUPLE[G]]) 15 do 16 subscribers.add_last(a_routine) 17 end 18 19 publish (a_event: G) 20 local 21 i: INTEGER; a: ROUTINE[TUPLE[G]] 22 do 23 from 24 i := subscribers.lower 25 until 26 i > subscribers.upper 27 loop 28 a := subscribers.item(i) 29 a.call([a_event]) 30 i := i + 1 31 end 32 end 33 34end -- class AUX_AGENT33A 35-- 36-- ------------------------------------------------------------------------------------------------------------------------------ 37-- Copyright notice below. Please read. 38-- 39-- SmartEiffel is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, 40-- as published by the Free Software Foundation; either version 2, or (at your option) any later version. 41-- SmartEiffel is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty 42-- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have 43-- received a copy of the GNU General Public License along with SmartEiffel; see the file COPYING. If not, write to the Free 44-- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 45-- 46-- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE 47-- Copyright(C) 2003-2006: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE 48-- 49-- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN 50-- 51-- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr 52-- ------------------------------------------------------------------------------------------------------------------------------