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

ObjectID: A unique identifier for distributed and other objects. More...

#include <ObjectID.h>

List of all members.

Public Member Functions

 ObjectID (Bool makeNull=False)
 If makeNull is True, make the null ObjectID, otherwise create a unique ObjectID.
 ObjectID (Int sequence, Int pid, Int time, const String &hostname)
 Create explicitly from the provided constituents.
 ObjectID (const ObjectID &other)
 Copy other.
ObjectIDoperator= (const ObjectID &other)
Bool isNull () const
 Is this ObjectID set?
Bool operator== (const ObjectID &other) const
 Compare two ObjectID's for (in)equality.
Bool operator!= (const ObjectID &other) const
Bool fromString (String &error, const String &in)
 It is useful to interconvert between strings and ObjecID's, e.g.
void toString (String &out) const
 Note that out is zero'd before it is set.
Int sequence () const
 Ordinarily the user does not need to get at the exact state of the, ObjectID, however it is available for those times when it is necessary.
Int pid () const
Int creationTime () const
const StringhostName () const

Static Public Member Functions

static String extractIDs (Block< ObjectID > &objectIDs, const String &command)
 Extract objectID strings (as set by glish script substitute.g) from a command, convert them to ObjectID objects, store those in the Block, and replace the strings by their Block indices as $OBJ::n::O where n is the index.

Static Private Member Functions

static Int sequence_number ()
 Make a unique sequence number, returns 0 on first call, 1 on next, ...

Private Attributes

Int sequence_number_p
Int process_id_p
Int creation_time_p
String hostname_p

Detailed Description

ObjectID: A unique identifier for distributed and other objects.

Intended use:

Public interface

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tObjectID

Prerequisite

Etymology

The ObjectID class name reflects its role as the single identifier for distributed and other user-level objects.

Synopsis

The ObjectID class is used to give a unique identifier to ``high-level'' objects in the system. Internally the ObjectID consists of a sequence number (unique within the creating process), a process id, a creation time, and a host id. Pragmatically the ObjectID should be unique with no dangers of collisions.

A special ``Null'' ObjectID is available.

Motivation

The fundamental purpose for an ObjectID is to provide a unique identifier for persistent objects, or for objects that might be accessed outside the creating processes address space.

To Do

Definition at line 79 of file ObjectID.h.


Constructor & Destructor Documentation

If makeNull is True, make the null ObjectID, otherwise create a unique ObjectID.

casa::ObjectID::ObjectID ( Int  sequence,
Int  pid,
Int  time,
const String hostname 
)

Create explicitly from the provided constituents.

casa::ObjectID::ObjectID ( const ObjectID other)

Copy other.

Note that if the ObjectID is embedded inside an object, the enclosing object probably does not want to copy the ObjectID since generally speaking the identity of the enclosing object should be immutable.


Member Function Documentation

Int casa::ObjectID::creationTime ( ) const [inline]

Definition at line 164 of file ObjectID.h.

References creation_time_p.

static String casa::ObjectID::extractIDs ( Block< ObjectID > &  objectIDs,
const String command 
) [static]

Extract objectID strings (as set by glish script substitute.g) from a command, convert them to ObjectID objects, store those in the Block, and replace the strings by their Block indices as $OBJ::n::O where n is the index.

Bool casa::ObjectID::fromString ( String error,
const String in 
)

It is useful to interconvert between strings and ObjecID's, e.g.

when saving to FITS or writing to a table. The form of the string is:

        sequence=123 host=hostname pid=pid time=time

with an optional comma between the fields. However, in general user code should not depend on the exact form of the string.

If this fails, an error message is set and the ObjectID is the null ObjectID.

const String & casa::ObjectID::hostName ( ) const [inline]

Definition at line 169 of file ObjectID.h.

References hostname_p.

Is this ObjectID set?

Bool casa::ObjectID::operator!= ( const ObjectID other) const
ObjectID& casa::ObjectID::operator= ( const ObjectID other)
Bool casa::ObjectID::operator== ( const ObjectID other) const

Compare two ObjectID's for (in)equality.

Int casa::ObjectID::pid ( ) const [inline]

Definition at line 159 of file ObjectID.h.

References process_id_p.

Int casa::ObjectID::sequence ( ) const [inline]

Ordinarily the user does not need to get at the exact state of the, ObjectID, however it is available for those times when it is necessary.

Definition at line 154 of file ObjectID.h.

References sequence_number_p.

static Int casa::ObjectID::sequence_number ( ) [static, private]

Make a unique sequence number, returns 0 on first call, 1 on next, ...

void casa::ObjectID::toString ( String out) const

Note that out is zero'd before it is set.


Member Data Documentation

Definition at line 141 of file ObjectID.h.

Referenced by creationTime().

Definition at line 142 of file ObjectID.h.

Referenced by hostName().

Definition at line 140 of file ObjectID.h.

Referenced by pid().

Definition at line 139 of file ObjectID.h.

Referenced by sequence().


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