18 #ifndef __itkMemoryUsageObserver_h
19 #define __itkMemoryUsageObserver_h
21 #include "itkConfigure.h"
26 #if defined(WIN32) || defined(_WIN32)
28 #define SUPPORT_TOOLHELP32
29 #if defined(SUPPORT_TOOLHELP32)
30 typedef LONG NTSTATUS;
59 #if defined(WIN32) || defined(_WIN32)
63 WindowsMemoryUsageObserver();
65 virtual ~WindowsMemoryUsageObserver();
68 virtual MemoryLoadType GetMemoryUsage();
70 #if defined(SUPPORT_TOOLHELP32)
71 typedef NTSTATUS (WINAPI * PZwQuerySystemInformation)(UINT, PVOID, ULONG, PULONG);
76 PZwQuerySystemInformation ZwQuerySystemInformation;
77 #endif // defined(SUPPORT_TOOLHELP32)
79 #endif // defined(WIN32) || defined(_WIN32)
82 class ITKCommon_EXPORT LinuxMemoryUsageObserver:
public MemoryUsageObserverBase
86 virtual ~LinuxMemoryUsageObserver();
87 virtual MemoryLoadType GetMemoryUsage();
91 #if defined(__APPLE__) && MAC_OS_X_VERSION >= MAC_OS_X_VERSION_10_2
92 class ITKCommon_EXPORT MacOSXMemoryUsageObserver:
public MemoryUsageObserverBase
96 virtual ~MacOSXMemoryUsageObserver();
97 virtual MemoryLoadType GetMemoryUsage();
101 #if defined(__SUNPRO_CC) || defined (__sun__)
102 class ITKCommon_EXPORT SunSolarisMemoryUsageObserver:
public MemoryUsageObserverBase
106 virtual ~SunSolarisMemoryUsageObserver();
107 virtual MemoryLoadType GetMemoryUsage();
109 #endif // Sun Solaris
111 #if !defined(WIN32) && !defined(_WIN32)
119 #if !defined(__APPLE__) && !defined(__SUNPRO_CC) && !defined (__sun__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
131 #endif // !defined(WIN32) && !defined(_WIN32)
141 #if defined(WIN32) || defined(_WIN32)
142 public WindowsMemoryUsageObserver
144 public LinuxMemoryUsageObserver
145 #elif defined(__SUNPRO_CC) || defined (__sun__)
146 public SunSolarisMemoryUsageObserver
147 #elif defined(__APPLE__) && MAC_OS_X_VERSION >= MAC_OS_X_VERSION_10_2
148 public MacOSXMemoryUsageObserver
149 #elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)
162 #endif // __itkMemoryUsageObserver_h