18 #ifndef __itkMemoryUsageObserver_h
19 #define __itkMemoryUsageObserver_h
21 #include "itkConfigure.h"
27 #if defined( WIN32 ) || defined( _WIN32 )
29 #define SUPPORT_TOOLHELP32
30 #if defined( SUPPORT_TOOLHELP32 )
31 typedef LONG NTSTATUS;
59 #if defined( WIN32 ) || defined( _WIN32 )
63 WindowsMemoryUsageObserver();
65 virtual ~WindowsMemoryUsageObserver();
71 #if defined( SUPPORT_TOOLHELP32 )
72 typedef NTSTATUS ( WINAPI * PZwQuerySystemInformation )(UINT, PVOID, ULONG, PULONG);
77 PZwQuerySystemInformation ZwQuerySystemInformation;
78 #endif // defined(SUPPORT_TOOLHELP32)
80 #endif // defined(WIN32) || defined(_WIN32)
83 class ITKCommon_EXPORT LinuxMemoryUsageObserver:
public MemoryUsageObserverBase
87 virtual ~LinuxMemoryUsageObserver();
93 #if defined( __APPLE__ )
94 class ITKCommon_EXPORT MacOSXMemoryUsageObserver:
public MemoryUsageObserverBase
98 virtual ~MacOSXMemoryUsageObserver();
104 #if defined( __SUNPRO_CC ) || defined ( __sun__ )
105 class ITKCommon_EXPORT SunSolarisMemoryUsageObserver:
public MemoryUsageObserverBase
109 virtual ~SunSolarisMemoryUsageObserver();
112 #endif // Sun Solaris
115 #if !defined( WIN32 ) && !defined( _WIN32 )
123 #if !defined( __APPLE__ ) && !defined( __SUNPRO_CC ) && !defined ( __sun__ ) && !defined( __FreeBSD__ ) \
124 && !defined( __OpenBSD__ )