diff options
Diffstat (limited to 'closures/compiler/symnot.pas')
-rw-r--r-- | closures/compiler/symnot.pas | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/closures/compiler/symnot.pas b/closures/compiler/symnot.pas new file mode 100644 index 0000000000..198bc43063 --- /dev/null +++ b/closures/compiler/symnot.pas @@ -0,0 +1,63 @@ +{ + Copyright (c) 2002 by Daniel Mantione + + This unit contains support routines for the variable access + notifier. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + **************************************************************************** +} + +unit symnot; + +{$i fpcdefs.inc} + +interface + +uses cclasses,symtype; + +type Tnotification_flag=(vn_onread,vn_onwrite,vn_unknown); + Tnotification_flags=set of Tnotification_flag; + + Tnotification_callback=procedure(not_type:Tnotification_flag; + symbol:Tsym) of object; + + Tnotification=class(Tlinkedlistitem) + flags:Tnotification_flags; + callback:Tnotification_callback; + id:cardinal; + constructor create(Aflags:Tnotification_flags; + Acallback:Tnotification_callback); + end; + +implementation + +var notification_counter:cardinal; + +constructor Tnotification.create(Aflags:Tnotification_flags; + Acallback:Tnotification_callback); + +begin + inherited create; + flags:=Aflags; + callback:=Acallback; + id:=notification_counter; + inc(notification_counter); +end; + +begin + notification_counter:=0; +end. |