home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / Apps / ScreenSavers / Sentinel / Source / SignalMgr.m < prev    next >
Encoding:
Text File  |  1995-06-12  |  939 b   |  71 lines

  1.  
  2. /* Generated by Interface Builder */
  3.  
  4. #import "SignalMgr.h"
  5.  
  6. #import <objc/List.h>
  7.  
  8. #import <signal.h>
  9. #import <libc.h>
  10.  
  11. static id        _SignalMgrObject = nil ;
  12.  
  13. void interruptHandler ( void )
  14. {
  15.     [ _SignalMgrObject interrupt ] ;
  16.     return ;
  17. }
  18.  
  19. struct sigvec    _SignalMgrVec = { interruptHandler, 0, SIGUSR1 } ;
  20.  
  21.  
  22. @implementation SignalMgr
  23.  
  24. + new
  25. {
  26.     if ( ! _SignalMgrObject )
  27.     {
  28.         _SignalMgrObject = [ [ super alloc ] init ] ;
  29.         sigvec ( SIGUSR1, &_SignalMgrVec, 0 ) ;
  30.     }
  31.     return _SignalMgrObject ;
  32. }
  33.  
  34.  
  35. - alloc
  36. {
  37.     [ self error: "SignalMgr: ALLOC not allowed on single instance classes.\n" ] ;
  38.     return nil ;
  39. }
  40.  
  41.  
  42. - init
  43. {
  44.     objectList = [ [ List alloc ] init ] ;
  45.     return self ;
  46. }
  47.  
  48.  
  49. - addObject: anObject
  50. {
  51.     [ objectList addObject: anObject ] ;
  52.     return self ;
  53. }
  54.  
  55.  
  56. - removeObject: anObject
  57. {
  58.     [ objectList removeObject: anObject ] ;
  59.     return self ;
  60. }
  61.  
  62.  
  63. - interrupt
  64. {
  65.     [ objectList makeObjectsPerform: @selector ( interrupt ) ] ;
  66.     return self ;
  67. }
  68.  
  69.  
  70. @end
  71.