home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / clwatchdog.tcl < prev    next >
Text File  |  1997-10-23  |  2KB  |  77 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)clwatchdog.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)clwatchdog.tcl    /main/titanic/2   23 Oct 1997 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.     set doErrorLater 0
  54.     if [catch {set returnValue [system [$this escape [$this script]]]} msg] {
  55.         set doErrorLater 1
  56.     set returnValue 1
  57.     }
  58.     send [$this interp] \
  59.     [concat {$wmttoolObj exitStatusList} [list $returnValue]]
  60.     if {"[$this endScript]" != ""} {
  61.     send -async [$this interp] [list eval [$this endScript]]
  62.     }
  63.     send -async [$this interp] {$wmttoolObj watchdogBusy 0}
  64.  
  65.     # wmtkerror can exit
  66.     # do it after interp msgs
  67.     if $doErrorLater {
  68.         wmtkerror $msg
  69.     }
  70.  
  71.     $this delete
  72.     return $returnValue
  73. }
  74.  
  75. # Do not delete this line -- regeneration end marker
  76.  
  77.