casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Static Public Member Functions | Private Member Functions | Static Private Attributes
casa::HostInfo Class Reference

Miscellaneous information about this host and process. More...

#include <HostInfo.h>

List of all members.

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 HostInfooperator= (const HostInfo &)

Static Private Attributes

static HostMachineInfo * info

Detailed Description

Miscellaneous information about this host and process.

Intended use:

Public interface

Review Status

Reviewed By:
Date Reviewed:



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();
    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.

To Do

Definition at line 103 of file HostInfo.h.

Constructor & Destructor Documentation

casa::HostInfo::HostInfo ( ) [private]


we don't want folks creating these...

Member Function Documentation

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.

const HostInfo& casa::HostInfo::operator= ( const HostInfo ) [private]
static Int casa::HostInfo::processID ( ) [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]

Member Data Documentation

HostMachineInfo* casa::HostInfo::info [static, private]

Definition at line 139 of file HostInfo.h.

The documentation for this class was generated from the following file: