home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / csserverno.tcl < prev    next >
Text File  |  1997-11-05  |  4KB  |  133 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)csserverno.tcl    /main/titanic/9
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)csserverno.tcl    /main/titanic/9   5 Nov 1997 Copyright 1996 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require csclientno.tcl
  13. require csparamdia.tcl
  14. # End user added include file section
  15.  
  16. require "csprocessn.tcl"
  17.  
  18. Class CSServerNode : {CSProcessNode} {
  19.     constructor
  20.     method destructor
  21.     method childName
  22.     method changeParameters
  23.     method changeableParameters
  24.     method shutdown
  25.     method doUpdate
  26.     attribute server
  27.     attribute paramDialog
  28. }
  29.  
  30. constructor CSServerNode {class this name i_server} {
  31.     set this [CSProcessNode::constructor $class $this $name]
  32.     $this server $i_server
  33.     # Start constructor user section
  34.  
  35.         $this process $i_server
  36.  
  37.     set info [ORB::decodeObjectId [$i_server identity]]
  38.     set implemId [ORB::makeImplemId [lindex $info 1] [lindex $info 2]]
  39.     set def [[ORB::nameServer] findServerDefinition $implemId]
  40.     $this label [lindex $def 0]
  41.  
  42.         $this icon rep_dbsrv_16
  43.         $this activeIcon rep_dbsrv_16
  44.  
  45.         $this canChangeParams 1
  46.         $this canShutdown 1
  47.  
  48.     # End constructor user section
  49.     return $this
  50. }
  51.  
  52. method CSServerNode::destructor {this} {
  53.     # Start destructor user section
  54.     # End destructor user section
  55.     $this CSProcessNode::destructor
  56. }
  57.  
  58. method CSServerNode::childName {this object} {
  59.     set nodeName [$object identity]
  60.     regsub -all {\.} $nodeName {_} nodeName
  61.     return $nodeName
  62. }
  63.  
  64. method CSServerNode::changeParameters {this} {
  65.     if {[$this paramDialog] == ""} {
  66.     set server [$this server]
  67.     set name "paramdlg-[[$server broker] name]-[$server name]"
  68.     regsub -all {\.} $name {_} name
  69.  
  70.         $this paramDialog [CSParamDialog new [$this view].$name \
  71.                 [$this view] \
  72.                 $this \
  73.                 "list [$this server]" \
  74.                                 [$this changeableParameters]]
  75.     }
  76.     [$this paramDialog] popUp
  77. }
  78.  
  79. method CSServerNode::changeableParameters {this} {
  80.     return [list orb_timeout orb_linger orb_report]
  81. }
  82.  
  83. method CSServerNode::shutdown {this {confirm 1}} {
  84.     if $confirm {
  85.         set name [$this name]
  86.         $this confirmShutdown "Server '$name'" \
  87.             "Are you sure you want to shutdown server '$name'?" \
  88.             shutdownServer
  89.         return
  90.     }
  91.  
  92.     if [catch {[$this server] shutdown} shutdownError] {
  93.         [$this view] error $shutdownError
  94.     } else {
  95.         set broker [[$this parent] parent]
  96.         $broker update 1
  97.     }
  98. }
  99.  
  100. method CSServerNode::doUpdate {this {rebuild 1}} {
  101.     $this CSProcessNode::doUpdate $rebuild
  102.  
  103.     set info [$this info]
  104.     set server [$this server]
  105.  
  106.     ORB::splitImplemId [$server implemId] implemId implemVersion
  107.     set fullId ${implemId}.${implemVersion}
  108.     set upTime [Repository::formatSeconds [$server upTime]]
  109.     set idleTime [Repository::formatSeconds [$server idleTime]]
  110.  
  111.     $info addHeader "Server"
  112.     $info addItem "Name"        [$server name]
  113.     $info addItem "Implementation Id"    [format "%10s" $fullId]
  114.     $info addItem "Port"        [format "%10d" [$server port]]
  115.     $info addItem "Up Time"        [format "%10s" $upTime]
  116.     $info addItem "Idle Time"        [format "%10s" $idleTime]
  117.     $info addItem "Requests Handled"    [format "%10d" [$server requests]]
  118.     $info addItem "Heartbeat Interval"    [format "%10d" [$server beatInterval]]
  119.     $info addItem "Max Missed Heartbeats" \
  120.                                         [format "%10d" [$server maxMissedBeats]]
  121.     $info addItem "Busyness"        [format "%10.3f" [$server busyness]]
  122.  
  123.     $info addHeader "Parameters"
  124.     $info addParameter orb_timeout    [$server getParameter orb_timeout]
  125.     $info addParameter orb_linger    [$server getParameter orb_linger]
  126.     $info addParameter orb_report    [$server getParameter orb_report]
  127.     $info addParameter orb_maxclients    [$server getParameter orb_maxclients]
  128.     $info addParameter orb_maxinstances    [$server getParameter orb_maxinstances]
  129. }
  130.  
  131. # Do not delete this line -- regeneration end marker
  132.  
  133.