casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Static Public Member Functions | Private Member Functions | Static Private Attributes | List of all members
casacore::HostInfo Class Reference

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). More...
 
static Int numCPUs (bool use_aipsrc=false)
 Returns 0 if unable to determine the number of CPUs. More...
 
static ptrdiff_t memoryTotal (bool use_aipsrc=false)
 Get memory info (in KBytes). More...
 
static ptrdiff_t memoryUsed ()
 
static ptrdiff_t memoryFree ()
 
static ptrdiff_t swapTotal ()
 Get swap space info (in KBytes). More...
 
static ptrdiff_t swapUsed ()
 
static ptrdiff_t swapFree ()
 
static ptrdiff_t setMemoryTotal (ptrdiff_t memory)
 Allows to set custom resource values overriding the existing.apisrc setting and/or system defaults Expected unit are KiB for memory total and percentage (%) for memory fraction Returns the value previously stored. More...
 
static Int setMemoryFraction (Int memfrac)
 
static Int setNumCPUs (Int numCPUs)
 

Private Member Functions

 HostInfo ()
 we don't want folks creating these... More...
 
const HostInfooperator= (const HostInfo &)
 

Static Private Attributes

static HostMachineInfo * info
 
static ptrdiff_t resources_memory
 
static Int resources_memfrac
 
static Int resources_numCPUs
 

Detailed Description

Miscellaneous information about this host and process.

Intended use:

Public interface

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Prerequisite

Synopsis

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.

Example

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;
doSomething();
cout << "Function doSomething() took " <<
HostInfo::secondsFrom1970() - now << " seconds to execute." << endl;

Motivation

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

casacore::HostInfo::HostInfo ( )
private

we don't want folks creating these...

Member Function Documentation

Bool casacore::HostInfo::bigEndian ( )
inlinestatic

Returns True for big endian machines (like SUN).

Returns False for little endian machines (like PC).

Definition at line 157 of file HostInfo.h.

References casacore::False, and casacore::True.

static String casacore::HostInfo::hostName ( )
static
static ptrdiff_t casacore::HostInfo::memoryFree ( )
static
static ptrdiff_t casacore::HostInfo::memoryTotal ( bool  use_aipsrc = false)
static

Get memory info (in KBytes).

Returns -1 if unable to determine memory info.

static ptrdiff_t casacore::HostInfo::memoryUsed ( )
static
static Int casacore::HostInfo::numCPUs ( bool  use_aipsrc = false)
static

Returns 0 if unable to determine the number of CPUs.

const HostInfo& casacore::HostInfo::operator= ( const HostInfo )
private
static Int casacore::HostInfo::processID ( )
static
static Double casacore::HostInfo::secondsFrom1970 ( )
static
static Int casacore::HostInfo::setMemoryFraction ( Int  memfrac)
static
static ptrdiff_t casacore::HostInfo::setMemoryTotal ( ptrdiff_t  memory)
static

Allows to set custom resource values overriding the existing.apisrc setting and/or system defaults Expected unit are KiB for memory total and percentage (%) for memory fraction Returns the value previously stored.

static Int casacore::HostInfo::setNumCPUs ( Int  numCPUs)
static
static ptrdiff_t casacore::HostInfo::swapFree ( )
static
static ptrdiff_t casacore::HostInfo::swapTotal ( )
static

Get swap space info (in KBytes).

Returns -1 if unable to determine swap info.

static ptrdiff_t casacore::HostInfo::swapUsed ( )
static

Member Data Documentation

HostMachineInfo* casacore::HostInfo::info
staticprivate

Definition at line 150 of file HostInfo.h.

Int casacore::HostInfo::resources_memfrac
staticprivate

Definition at line 152 of file HostInfo.h.

ptrdiff_t casacore::HostInfo::resources_memory
staticprivate

Definition at line 151 of file HostInfo.h.

Int casacore::HostInfo::resources_numCPUs
staticprivate

Definition at line 153 of file HostInfo.h.


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