sysresmonitoring/oommonitor/src/oommonitorsession.cpp
branchRCL_3
changeset 1 0fdb7f6b0309
parent 0 2e3d3ce01487
child 2 7645e9ce10dc
--- a/sysresmonitoring/oommonitor/src/oommonitorsession.cpp	Tue Feb 02 10:12:00 2010 +0200
+++ b/sysresmonitoring/oommonitor/src/oommonitorsession.cpp	Fri Feb 19 22:58:54 2010 +0200
@@ -16,33 +16,104 @@
 */
 
 
-#include "oommonitorsession.h"
+#include <coemain.h>
+#include <oommonitorsession.h>
 #include "oommonitorclientserver.h"
+#include "oompanic.h"
+#include "oomtraces.h"
 
 EXPORT_C TInt ROomMonitorSession::Connect()
-	{
-	return CreateSession(KMemoryMonitorServerName, TVersion(0,0,0));
-	}
+    {
+    FUNC_LOG;
+
+    return CreateSession(KMemoryMonitorServerName, TVersion(0,0,0));
+    }
 
 EXPORT_C TInt ROomMonitorSession::RequestFreeMemory(TInt aBytesRequested)
-	{
-	TIpcArgs p(aBytesRequested);
-	return SendReceive(EOomMonitorRequestFreeMemory, p);
-	}
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aBytesRequested);
+    return SendReceive(EOomMonitorRequestFreeMemory, p);
+    }
+
+EXPORT_C TInt ROomMonitorSession::RequestOptionalRam(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TInt& aBytesAvailable)
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aBytesRequested, aMinimumBytesNeeded, aPluginId, aBytesAvailable);
+    TInt ret = SendReceive(EOomMonitorRequestOptionalRam, p);
+    if (ret >= 0)
+        {
+        aBytesAvailable = ret;
+        ret = KErrNone;
+        }
+    
+    return ret;
+    }
+
+
+
+EXPORT_C void ROomMonitorSession::RequestOptionalRam(TInt aBytesRequested, TInt aMinimumBytesNeeded, TInt aPluginId, TRequestStatus& aStatus)
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aBytesRequested, aMinimumBytesNeeded, aPluginId);
+    SendReceive(EOomMonitorRequestOptionalRam, p, aStatus);
+    }
 
 EXPORT_C void ROomMonitorSession::RequestFreeMemory(TInt aBytesRequested, TRequestStatus& aStatus)
-	{
-	TIpcArgs p(aBytesRequested);
-	SendReceive(EOomMonitorRequestFreeMemory, p, aStatus);
-	}
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aBytesRequested);
+    SendReceive(EOomMonitorRequestFreeMemory, p, aStatus);
+    }
 
 EXPORT_C void ROomMonitorSession::CancelRequestFreeMemory()
-	{
-	SendReceive(EOomMonitorCancelRequestFreeMemory, TIpcArgs());
-	}
+    {
+    FUNC_LOG;
+
+    SendReceive(EOomMonitorCancelRequestFreeMemory, TIpcArgs());
+    }
 
 EXPORT_C void ROomMonitorSession::ThisAppIsNotExiting(TInt aWgId)
-	{
-	TIpcArgs p(aWgId);
-	SendReceive(EOomMonitorThisAppIsNotExiting, p);
-	}
+    {
+    FUNC_LOG;
+
+    TIpcArgs p(aWgId);
+    SendReceive(EOomMonitorThisAppIsNotExiting, p);
+    }
+
+
+EXPORT_C void ROomMonitorSession::SetOomPriority(TOomPriority aPriority)
+    {
+    FUNC_LOG;
+
+    CCoeEnv* coeEnv = CCoeEnv::Static();
+
+    __ASSERT_DEBUG(coeEnv, OomMonitorPanic(KNoCoeEnvFound));    
+
+    if (coeEnv)
+        {
+        TInt wgId = coeEnv->RootWin().Identifier();
+        TIpcArgs p(wgId);
+        switch (aPriority)
+            {
+            case EOomPriorityNormal:
+                SendReceive(EOomMonitorSetPriorityNormal, p);
+                break;
+            case EOomPriorityHigh:
+                SendReceive(EOomMonitorSetPriorityHigh, p);
+                break;
+            case EOomPriorityBusy:
+                SendReceive(EOomMonitorSetPriorityBusy, p);
+                break;
+            default:
+                OomMonitorPanic(KOomInvalidPriority);
+                break;
+            }
+        }
+    }
+
+