home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / clwatchdog.tcl < prev    next >
Text File  |  1996-10-17  |  2KB  |  70 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)clwatchdog.tcl    /main/hindenburg/1
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)clwatchdog.tcl    /main/hindenburg/1   17 Oct 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class ClWatchdog : {Object} {
  16.     constructor
  17.     method destructor
  18.     method escape
  19.     method execute
  20.     attribute interp
  21.     attribute script
  22.     attribute endScript
  23. }
  24.  
  25. constructor ClWatchdog {class this name} {
  26.     set this [Object::constructor $class $this $name]
  27.     # Start constructor user section
  28.     # End constructor user section
  29.     return $this
  30. }
  31.  
  32. method ClWatchdog::destructor {this} {
  33.     # Start destructor user section
  34.     # End destructor user section
  35. }
  36.  
  37. method ClWatchdog::escape {this cmd} {
  38.     if $win95 {
  39.     return $cmd
  40.     }
  41.  
  42.     set sn $cmd
  43.     if {[regsub -all {\$} $sn {\\$}  snn]} {set sn $snn}
  44.     return $sn
  45. }
  46.  
  47. method ClWatchdog::execute {this} {
  48.     if {! [isRunning [$this interp] 1]} {
  49.     return 1
  50.     }
  51.  
  52.     send -async [$this interp] {$wmttoolObj watchdogBusy 1}
  53.     if [catch {set returnValue [system [$this escape [$this script]]]} msg] {
  54.     wmtkerror $msg
  55.     set returnValue 1
  56.     }
  57.     send [$this interp] \
  58.     [concat {$wmttoolObj exitStatusList} [list $returnValue]]
  59.     if {"[$this endScript]" != ""} {
  60.     send -async [$this interp] [list eval [$this endScript]]
  61.     }
  62.     send -async [$this interp] {$wmttoolObj watchdogBusy 0}
  63.  
  64.     $this delete
  65.     return $returnValue
  66. }
  67.  
  68. # Do not delete this line -- regeneration end marker
  69.  
  70.