--- a/Win32OperatingSystem.st Mon Sep 10 17:15:06 2007 +0200
+++ b/Win32OperatingSystem.st Mon Sep 10 17:22:52 2007 +0200
@@ -77,6 +77,13 @@
privateIn:Win32OperatingSystem::PerformanceData
!
+Win32OperatingSystem::PerformanceData::Abstract subclass:#Memory
+ instanceVariableNames:''
+ classVariableNames:'TheOneAndOnlyInstance'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem::PerformanceData
+!
+
Win32OperatingSystem::PerformanceData::Abstract subclass:#Process
instanceVariableNames:''
classVariableNames:'TheOneAndOnlyInstance'
@@ -10354,6 +10361,10 @@
^ Global current
!
+memory
+ ^ Memory current
+!
+
process
^ Process current
!
@@ -10386,6 +10397,9 @@
self process processUsage.
self process runningProcesses.
self process runningProcessNameList.
+
+ self memory getCounterNameIndexArray.
+ self memory availableMBytes.
"
! !
@@ -10859,7 +10873,7 @@
!
getValuesByObject:objectIndex counter:counterIndex timed:boolean
- |data object counter values debugBlock|
+ |data object counter values debugBlock numInstances|
debugBlock := [:obj|
^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
@@ -10876,14 +10890,19 @@
counter := (object at:#Counters) detect:[:aCounter|(aCounter at:#CounterNameTitleIndex) == counterIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
values := Dictionary new.
-
- 1 to:(object at:#NumInstances) do:[:idx|
- |value instanceName|
-
- value := (counter at:#CounterValueArray) at:idx.
- instanceName := ((object at:#Instances) at:idx) at:#Name.
-
- values at:instanceName put:value.
+ numInstances := object at:#NumInstances.
+
+ numInstances > 0 ifTrue:[
+ 1 to:numInstances do:[:idx|
+ |value instanceName|
+
+ value := (counter at:#CounterValueArray) at:idx.
+ instanceName := ((object at:#Instances) at:idx) at:#Name.
+
+ values at:instanceName put:value.
+ ].
+ ] ifFalse:[
+ values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
].
boolean ifTrue:[
@@ -11001,6 +11020,37 @@
^ indexNameArray
! !
+!Win32OperatingSystem::PerformanceData::Memory class methodsFor:'accessing'!
+
+current
+
+ TheOneAndOnlyInstance isNil ifTrue:[
+ TheOneAndOnlyInstance := self new.
+ ].
+
+ ^ TheOneAndOnlyInstance
+! !
+
+!Win32OperatingSystem::PerformanceData::Memory methodsFor:'definitions'!
+
+aliveTime
+ ^ 80
+!
+
+indexedName
+ ^ '4'
+! !
+
+!Win32OperatingSystem::PerformanceData::Memory methodsFor:'queries'!
+
+availableMBytes
+ ^ self getValuesByCounter:1382
+
+ "
+ self current availableMBytes
+ "
+! !
+
!Win32OperatingSystem::PerformanceData::Process class methodsFor:'accessing'!
current
@@ -13952,7 +14002,7 @@
!Win32OperatingSystem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.302 2007-09-10 15:15:06 sr Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.303 2007-09-10 15:22:52 sr Exp $'
! !
Win32OperatingSystem initialize!