summaryrefslogtreecommitdiff
path: root/util/processinfo_win32.cpp
diff options
context:
space:
mode:
authorAntonin Kral <a.kral@bobek.cz>2010-01-31 08:32:52 +0100
committerAntonin Kral <a.kral@bobek.cz>2010-01-31 08:32:52 +0100
commit4eefaf421bfeddf040d96a3dafb12e09673423d7 (patch)
treecb2e5ccc7f98158894f977ff131949da36673591 /util/processinfo_win32.cpp
downloadmongodb-4eefaf421bfeddf040d96a3dafb12e09673423d7.tar.gz
Imported Upstream version 1.3.1
Diffstat (limited to 'util/processinfo_win32.cpp')
-rw-r--r--util/processinfo_win32.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/util/processinfo_win32.cpp b/util/processinfo_win32.cpp
new file mode 100644
index 0000000..0f0bf2e
--- /dev/null
+++ b/util/processinfo_win32.cpp
@@ -0,0 +1,64 @@
+// processinfo_win32.cpp
+
+/* Copyright 2009 10gen Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "stdafx.h"
+#include "processinfo.h"
+
+#include <iostream>
+
+#include <windows.h>
+#include <psapi.h>
+
+using namespace std;
+
+int getpid(){
+ return GetCurrentProcessId();
+}
+
+namespace mongo {
+
+ int _wconvertmtos( SIZE_T s ){
+ return (int)( s / ( 1024 * 1024 ) );
+ }
+
+ ProcessInfo::ProcessInfo( pid_t pid ){
+ }
+
+ ProcessInfo::~ProcessInfo(){
+ }
+
+ bool ProcessInfo::supported(){
+ return true;
+ }
+
+ int ProcessInfo::getVirtualMemorySize(){
+ MEMORYSTATUSEX mse;
+ mse.dwLength = sizeof(mse);
+ assert( GlobalMemoryStatusEx( &mse ) );
+ DWORDLONG x = (mse.ullTotalVirtual - mse.ullAvailVirtual) / (1024 * 1024) ;
+ assert( x <= 0x7fffffff );
+ return (int) x;
+ }
+
+ int ProcessInfo::getResidentSize(){
+ PROCESS_MEMORY_COUNTERS pmc;
+ assert( GetProcessMemoryInfo( GetCurrentProcess() , &pmc, sizeof(pmc) ) );
+ return _wconvertmtos( pmc.WorkingSetSize );
+ }
+
+ void ProcessInfo::getExtraInfo(BSONObjBuilder& info) {}
+}