// ********************************************************************** // // Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** #ifndef ICE_GRID_PLATFORM_INFO_H #define ICE_GRID_PLATFORM_INFO_H #include #ifdef _WIN32 # include // Performance data helper API # include #endif namespace IceGrid { class TraceLevels; typedef IceUtil::Handle TraceLevelsPtr; class PlatformInfo { public: PlatformInfo(const Ice::CommunicatorPtr&, const TraceLevelsPtr&); ~PlatformInfo(); NodeInfo getNodeInfo() const; LoadInfo getLoadInfo(); std::string getHostname() const; std::string getDataDir() const; private: #if defined(_WIN32) void initQuery(); #endif const TraceLevelsPtr _traceLevels; NodeInfo _info; std::string _hostname; #if defined(_WIN32) HQUERY _query; HCOUNTER _counter; std::deque _usages1; std::deque _usages5; std::deque _usages15; int _last1Total; int _last5Total; int _last15Total; #elif defined(_AIX) int _kmem; #endif }; }; #endif