*** empty log message ***
authorsr
Mon, 10 Sep 2007 17:22:52 +0200
changeset 10707 3b21d7c079fd
parent 10706 8fb6824a5c70
child 10708 0d2357899fb6
*** empty log message ***
Win32OperatingSystem.st
--- 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!