casa
$Rev:20696$
|
Miscellaneous information about this host and process. More...
#include <HostInfo.h>
Static Public Member Functions | |
static String | hostName () |
static Int | processID () |
static Double | secondsFrom1970 () |
static Bool | bigEndian () |
Returns True for big endian machines (like SUN). | |
static Int | numCPUs (bool use_aipsrc=false) |
Returns 0 if unable to determine the number of CPUs. | |
static ssize_t | memoryTotal (bool use_aipsrc=false) |
Get memory info (in KBytes). | |
static ssize_t | memoryUsed () |
static ssize_t | memoryFree () |
static ssize_t | swapTotal () |
Get swap space info (in KBytes). | |
static ssize_t | swapUsed () |
static ssize_t | swapFree () |
Private Member Functions | |
HostInfo () | |
const HostInfo & | operator= (const HostInfo &) |
Static Private Attributes | |
static HostMachineInfo * | info |
Miscellaneous information about this host and process.
Public interface
This class is meant to encapsulate miscellaneous information about the environment that the current process is running in.
At present, the class can be used to obtain the name of the host on which this process is running, the process id of this process, the amount of physical memory (total, used, & free) on this host, the amount of swap space (total, used, and free), the number of CPUs on this host, and a count of the number of seconds from January 1, 1970. Generally you should use the classes Time and MVTime if your primary interest is related to time and dates. If your interest is in timing, you would generally use class Timer , which can also report CPU times as well as "clock" times.
Determination of the number of CPUs, swap space, and physical memory is particularly OS dependent. In cases where this functionality has not yet been implemented, the memory and swap functions will return -1 and the CPU function will return 0.
cout << "I am process #" << HostInfo::processID() << " running on host " << HostInfo::hostName() << ", which has " << HostInfor::numCPUs( ) << " CPUs." << endl; cout << "This host has " << HostInfo::memoryTotal( ) << "K of memory [ " << HostInfo::memoryUsed( ) << " used, " << HostInfo::memoryFree( ) << " free ]." << endl; cout << "This host has " << HostInfo::swapTotal( ) << "K of swap space [ " << HostInfo::swapUsed( ) << " used, " << HostInfo::swapFree( ) << " free ]." << endl; Double now = HostInfo::secondsFrom1970(); doSomething(); cout << "Function doSomething() took " << HostInfo::secondsFrom1970() - now << " seconds to execute." << endl;
The ObjectID class uses a combination of hostname, process id, time, and a sequence number to ensure that ObjectID's are distinct. This class encapsulates the way the first three of those items are obtained.
Definition at line 103 of file HostInfo.h.
casa::HostInfo::HostInfo | ( | ) | [private] |
we don't want folks creating these...
Bool casa::HostInfo::bigEndian | ( | ) | [inline, static] |
Returns True for big endian machines (like SUN).
Returns False for little endian machines (like PC).
Definition at line 143 of file HostInfo.h.
References casa::False, and casa::True.
static String casa::HostInfo::hostName | ( | ) | [static] |
static ssize_t casa::HostInfo::memoryFree | ( | ) | [static] |
static ssize_t casa::HostInfo::memoryTotal | ( | bool | use_aipsrc = false | ) | [static] |
Get memory info (in KBytes).
Returns -1 if unable to determine memory info.
static ssize_t casa::HostInfo::memoryUsed | ( | ) | [static] |
static Int casa::HostInfo::numCPUs | ( | bool | use_aipsrc = false | ) | [static] |
Returns 0 if unable to determine the number of CPUs.
static Int casa::HostInfo::processID | ( | ) | [static] |
static Double casa::HostInfo::secondsFrom1970 | ( | ) | [static] |
static ssize_t casa::HostInfo::swapFree | ( | ) | [static] |
static ssize_t casa::HostInfo::swapTotal | ( | ) | [static] |
Get swap space info (in KBytes).
Returns -1 if unable to determine swap info.
static ssize_t casa::HostInfo::swapUsed | ( | ) | [static] |
HostMachineInfo* casa::HostInfo::info [static, private] |
Definition at line 139 of file HostInfo.h.