home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / memsz331.zip / Source.zip / EVENT.H < prev    next >
Text File  |  1995-03-06  |  1KB  |  51 lines

  1. // Class; Event Semaphore
  2.  
  3. #ifndef EVENT_H
  4. #define EVENT_H
  5.  
  6. #include "Debug.h"
  7.  
  8. class Event {
  9.  
  10.    private:
  11.       HEV Handle ;
  12.  
  13.    public:
  14.       Event ( PSZ Name = PSZ(NULL) ) {
  15.          if ( Name )
  16.             Handle = 0 ;
  17.          APIRET Status = DosCreateEventSem ( Name, &Handle, DC_SEM_SHARED, FALSE ) ;
  18.          if ( Status ) {
  19.             Log ( "EVENT: Unable to create event semaphore '%s'.", Name ) ;
  20.             Handle = 0 ;
  21.          } /* endif */
  22.       }
  23.  
  24.       ~Event ( ) {
  25.          DosCloseEventSem ( Handle ) ;
  26.       }
  27.  
  28.       HEV QueryHandle ( ) { return ( Handle ) ; }
  29.  
  30.       APIRET Wait ( int Timeout = SEM_INDEFINITE_WAIT ) {
  31.          if ( Handle == 0 )
  32.             return ( 0xFFFFFFFF ) ;
  33.          return ( DosWaitEventSem ( Handle, Timeout ) ) ;
  34.       }
  35.  
  36.       APIRET Post ( ) {
  37.          if ( Handle == 0 )
  38.             return ( 0xFFFFFFFF ) ;
  39.          return ( DosPostEventSem ( Handle ) ) ;
  40.       }
  41.  
  42.       APIRET Reset ( ) {
  43.          if ( Handle == 0 )
  44.             return ( 0xFFFFFFFF ) ;
  45.          ULONG PostCount ;
  46.          return ( DosResetEventSem ( Handle, &PostCount ) ) ;
  47.       }
  48. } ;
  49.  
  50. #endif
  51.