Win32OperatingSystem.st
changeset 10756 d694d3872402
parent 10755 c003686c37e1
child 10757 a5e2e0f500df
--- a/Win32OperatingSystem.st	Tue Oct 23 15:58:32 2007 +0200
+++ b/Win32OperatingSystem.st	Tue Oct 23 16:42:08 2007 +0200
@@ -10507,26 +10507,33 @@
         self processor interruptsPerSecond.
         self processor interruptsPerSecondFromLast.
 
+        self process getCounterNameIndexArray.
+        self process processUsage.
+        self process processUsageFromLast.
+        self process runningProcesses.
+        self process runningProcessNameList.
+
+        self network getCounterNameIndexArray.
+        self network kBytesReceivedPerSecond.
+        self network kBytesReceivedPerSecondFromLast.
+        self network kBytesSentPerSecond.
+        self network kBytesSentPerSecondFromLast.
+
+        self memory getCounterNameIndexArray.
+        self memory availableMBytes.
+        self memory availableKBytes.
+
         self diskIO getCounterNameIndexArray.
         self diskIO diskSpaceFreeInMegaByte.
         self diskIO diskQueueLength.
         self diskIO diskTransfersPerSecond.
+        self diskIO diskTransfersPerSecondFromlast.
         self diskIO diskReadsPerSecond.
+        self diskIO diskReadsPerSecondFromLast.
         self diskIO diskWritesPerSecond.
+        self diskIO diskWritesPerSecondFromLast.
         self diskIO diskBytesPerSecond.
-
-        self process getCounterNameIndexArray.
-        self process processUsage.
-        self process runningProcesses.
-        self process runningProcessNameList.
-
-        self memory getCounterNameIndexArray.
-        self memory availableMBytes.
-        self memory availableKBytes.
-
-        self network getCounterNameIndexArray.
-        self network kBytesReceivedPerSecond.
-        self network kBytesSentPerSecond.
+        self diskIO diskBytesPerSecondFromLast.
     "
 ! !
 
@@ -11058,6 +11065,24 @@
 
 !Win32OperatingSystem::PerformanceData::Abstract methodsFor:'queries - timed'!
 
+getPerSecondFromLast:aSelector
+    |cachedResult return|
+
+    cachedResult := self cachedResults at:aSelector ifAbsent:nil.
+    cachedResult notNil ifTrue:[
+        |currentResult|
+
+        currentResult := self perform:aSelector.
+        return := self getPerSecondViaResult1:cachedResult result2:currentResult.
+
+        self cachedResults at:aSelector put:currentResult.
+    ] ifFalse:[
+        self cachedResults at:aSelector put:(self perform:aSelector).
+    ].
+
+    ^ return
+!
+
 getPerSecondViaPerformBlock:performBlock
     |result1 result2 runTimeInNS runTimeInS values1 values2 globalResult|
 
@@ -11116,6 +11141,24 @@
     ^ globalResult
 !
 
+getUsageFromLast:aSelector
+    |cachedResult return|
+
+    cachedResult := self cachedResults at:aSelector ifAbsent:nil.
+    cachedResult notNil ifTrue:[
+        |currentResult|
+
+        currentResult := self perform:aSelector.
+        return := self getUsageViaResult1:cachedResult result2:currentResult.
+
+        self cachedResults at:aSelector put:currentResult.
+    ] ifFalse:[
+        self cachedResults at:aSelector put:(self perform:aSelector).
+    ].
+
+    ^ return
+!
+
 getUsageViaPerformBlock:performBlock
     |result1 result2 deltaTIn100Ns value1 value2 globalResult|
 
@@ -11338,6 +11381,14 @@
     "
 !
 
+diskBytesBasic
+    ^ self getBasicValuesByCounter:218 timed:true
+
+    "
+        self current diskBytesBasic
+    "
+!
+
 diskBytesPerSecond
     ^ self getPerSecondViaPerformBlock:[self diskBytes]
 
@@ -11346,6 +11397,14 @@
     "
 !
 
+diskBytesPerSecondFromLast
+    ^ self getPerSecondFromLast:#diskBytesBasic
+
+    "
+        self current diskBytesPerSecondFromLast   
+    "
+!
+
 diskQueueLength
     ^ self getValuesByCounter:198
 
@@ -11362,6 +11421,14 @@
     "
 !
 
+diskReadBasic
+    ^ self getBasicValuesByCounter:214 timed:true
+
+    "
+        self current diskReadBasic
+    "
+!
+
 diskReadsPerSecond
     ^ self getPerSecondViaPerformBlock:[self diskRead]
 
@@ -11370,6 +11437,14 @@
     "
 !
 
+diskReadsPerSecondFromLast
+    ^ self getPerSecondFromLast:#diskReadBasic
+
+    "
+        self current diskReadsPerSecondFromLast   
+    "
+!
+
 diskSpaceFreeInMegaByte
     ^ self getValuesByCounter:408
 
@@ -11386,6 +11461,14 @@
     "
 !
 
+diskTransfersBasic
+    ^ self getBasicValuesByCounter:212 timed:true
+
+    "
+        self current diskTransfersBasic
+    "
+!
+
 diskTransfersPerSecond
     ^ self getPerSecondViaPerformBlock:[self diskTransfers]
 
@@ -11394,6 +11477,14 @@
     "
 !
 
+diskTransfersPerSecondFromlast
+    ^ self getPerSecondFromLast:#diskTransfersBasic
+
+    "
+        self current diskTransfersPerSecondFromlast
+    "
+!
+
 diskWrite
     ^ self getValuesByCounter:216 timed:true
 
@@ -11402,12 +11493,28 @@
     "
 !
 
+diskWriteBasic
+    ^ self getBasicValuesByCounter:216 timed:true
+
+    "
+        self current diskWriteBasic
+    "
+!
+
 diskWritesPerSecond
     ^ self getPerSecondViaPerformBlock:[self diskWrite]
 
     "
 	self current diskWritesPerSecond
     "
+!
+
+diskWritesPerSecondFromLast
+    ^ self getPerSecondFromLast:#diskWriteBasic
+
+    "
+        self current diskWritesPerSecondFromLast   
+    "
 ! !
 
 !Win32OperatingSystem::PerformanceData::Global class methodsFor:'accessing'!
@@ -11529,6 +11636,14 @@
     "
 !
 
+bytesReceivedBasic
+    ^ self getBasicValuesByCounter:264 timed:true
+
+    "
+        self current bytesReceivedBasic
+    "
+!
+
 bytesReceivedPerSecond
     ^ self getPerSecondViaPerformBlock:[self bytesReceived]
 
@@ -11537,6 +11652,14 @@
     "
 !
 
+bytesReceivedPerSecondFromlast
+    ^ self getPerSecondFromLast:#bytesReceivedBasic
+
+    "
+        self current bytesReceivedPerSecondFromlast  
+    "
+!
+
 bytesSent
     ^ self getValuesByCounter:506 timed:true
 
@@ -11545,6 +11668,14 @@
     "
 !
 
+bytesSentBasic
+    ^ self getBasicValuesByCounter:506 timed:true
+
+    "
+        self current bytesSentBasic
+    "
+!
+
 bytesSentPerSecond
     ^ self getPerSecondViaPerformBlock:[self bytesSent]
 
@@ -11553,6 +11684,14 @@
     "
 !
 
+bytesSentPerSecondFromlast
+    ^ self getPerSecondFromLast:#bytesSentBasic
+
+    "
+        self current bytesSentPerSecondFromlast
+    "
+!
+
 kBytesReceivedPerSecond
     |modifiedDictionary|
 
@@ -11569,6 +11708,25 @@
     "
 !
 
+kBytesReceivedPerSecondFromLast
+    |return modifiedDictionary|
+
+    return := self bytesReceivedPerSecondFromlast.
+    return isNil ifTrue:[^ nil].
+
+    modifiedDictionary := Dictionary new.
+
+    return keysAndValuesDo:[:key :value|
+        modifiedDictionary at:key put:(value / 1024).
+    ].
+
+    ^ modifiedDictionary
+
+    "
+        self current kBytesReceivedPerSecondFromLast
+    "
+!
+
 kBytesSentPerSecond
     |modifiedDictionary|
 
@@ -11583,6 +11741,25 @@
     "
 	self current kBytesSentPerSecond
     "
+!
+
+kBytesSentPerSecondFromLast
+    |return modifiedDictionary|
+
+    return := self bytesSentPerSecondFromlast.
+    return isNil ifTrue:[^ nil].
+
+    modifiedDictionary := Dictionary new.
+
+    return keysAndValuesDo:[:key :value|
+        modifiedDictionary at:key put:(value / 1024).
+    ].
+
+    ^ modifiedDictionary
+
+    "
+        self current kBytesSentPerSecondFromLast   
+    "
 ! !
 
 !Win32OperatingSystem::PerformanceData::Process class methodsFor:'accessing'!
@@ -11616,6 +11793,14 @@
     "
 !
 
+processTimeBasic
+    ^ self getBasicValuesByCounter:6 timed:true
+
+    "
+        self current processTimeBasic
+    "
+!
+
 processUsage
     |modifiedDictionary|
 
@@ -11632,6 +11817,25 @@
     "
 !
 
+processUsageFromLast
+    |return modifiedDictionary|
+
+    return := self getUsageFromLast:#processTimeBasic.
+    return isNil ifTrue:[^ nil].
+
+    modifiedDictionary := Dictionary new.
+
+    return keysAndValuesDo:[:key :value|
+        modifiedDictionary at:key put:(100 - value).
+    ].
+
+    ^ modifiedDictionary
+
+    "
+        self current processUsageFromLast      
+    "
+!
+
 runningProcessNameList
     "_Total ~ pseudo process; Idle ~ pseudo process represents the free resources"
     ^ (self data objectArray first at:#Instances) collect:[:el|el at:#Name]
@@ -11685,7 +11889,7 @@
     ^ self getBasicValuesByCounter:148 timed:true
 
     "
-        self current interruptsBasic
+        self current interruptsBasic   
     "
 !
 
@@ -11698,21 +11902,7 @@
 !
 
 interruptsPerSecondFromLast
-    |cachedResult return|
-
-    cachedResult := self cachedResults at:#interruptsPerSecondFromLast ifAbsent:nil.
-    cachedResult notNil ifTrue:[
-        |currentResult|
-
-        currentResult := self interruptsBasic.
-        return := self getPerSecondViaResult1:cachedResult result2:currentResult.
-
-        self cachedResults at:#interruptsPerSecondFromLast put:currentResult.
-    ] ifFalse:[
-        self cachedResults at:#interruptsPerSecondFromLast put:self interruptsBasic.
-    ].
-
-    ^ return
+    ^ self getPerSecondFromLast:#interruptsBasic
 
     "
         self current interruptsPerSecondFromLast      
@@ -11744,24 +11934,10 @@
 !
 
 processorUsageFromLast
-    |cachedResult return|
-
-    cachedResult := self cachedResults at:#processorUsageFromLast ifAbsent:nil.
-    cachedResult notNil ifTrue:[
-        |currentResult|
-
-        currentResult := self processorTimeBasic.
-        return := self getUsageViaResult1:cachedResult result2:currentResult.
-
-        self cachedResults at:#processorUsageFromLast put:currentResult.
-    ] ifFalse:[
-        self cachedResults at:#processorUsageFromLast put:self processorTimeBasic.
-    ].
-
-    ^ return
-
-    "
-        self current processorUsageFromLast      
+    ^ self getUsageFromLast:#processorTimeBasic
+
+    "
+        self current processorUsageFromLast       
     "
 ! !
 
@@ -14682,7 +14858,7 @@
 !Win32OperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.317 2007-10-23 13:58:32 sr Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.318 2007-10-23 14:42:08 sr Exp $'
 ! !
 
 Win32OperatingSystem initialize!