// ********************************************************************** // // Copyright (c) 2003-2006 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 std::string&, const Ice::CommunicatorPtr&, const TraceLevelsPtr&); ~PlatformInfo(); NodeInfo getNodeInfo() const; RegistryInfo getRegistryInfo() const; LoadInfo getLoadInfo(); std::string getHostname() const; std::string getDataDir() const; private: #if defined(_WIN32) void initQuery(); #endif const TraceLevelsPtr _traceLevels; std::string _name; std::string _os; std::string _hostname; std::string _release; std::string _version; std::string _machine; int _nProcessors; std::string _dataDir; std::string _endpoints; #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