dataset_id

Version 1.20 07jun05


Introduction

This package provides some support classes for package dataset. Most or all of these should be moved to another place or replaced with equivalent versions defined elsewhere.

The dataset system is described at http://www.usatlas.bnl.gov/~dladams/dataset

Although, the components in this package were written to support the dataset system, most or all have wide applicability in the realm of event (and other) data management.


Dependencies

Dependencies are described in the CMT requirements file.

This package depends on globus because WsClientUniqueIdGenerator may be used as a plugin and it is necessary to include the globus ssl libraries ahead of the incompatible standard SSL libraries. If globus is not available or this problem is fixed in globus, the dependency may be removed. DLA dec04.


Status

Version.
Change log.


Components

The components here are listed in dependency order. Each component depends only on those listed above it. The test associated with each component is a main program that returns zero if the component is working properly.

UniqueId (header, source, test) UniqueId is a 64-bit identifier made up of two 32-bit fields called the collection and entry. The expectation is that collection indices are managed by some central source which hands out values without duplication to requesters (e.g. processes, processor, file systems or users) which then hand out entry values sequentially until the list is exhausted. If this policy is followed, then the identifiers are unique.

UniqueIdGenerator (header, source, test) Class interface to generate UniqueId objects.

SimpleUniqueIdGenerator (header, source, test) Implementation of the UniqueIdGenerator interface. It locates and opens a state file which specifies a fixed collection and the next value for the entry. It provides means to sequentailly hand out new identifiers from that collection until the list is exhausted. When the generator closed, it appropriately updates the state file so the next instance can resume the sequence.

DatasetId (header, source, test) DatasetId inherits from UniqueId and provides an identifier for datasets.

EventId (header, source, test) EventId is a 64-bit identifier for events (beam crossings). It consists of a 32-bit run number and 32-bit event number. It does not inherit from UniqueId because the dataset system does not normally generate new event identifiers. It would be straightforward to add a function which uses UniqueiId and UniqueIdGenerator to create EventId objects. the mechanism for generating these iden datasets.

ContentId (header, source, test) ContentId is an identifier for labeling the content of an EDO (event data object). ContentId includes the type of the object and a string key intended to distinguish EDO's of the same type. The type is specified by a string holding the class name or a 32-bit index (ClassID in ATLAS parlance). The class provides a static registry of known classes specifying both class name and index.

EventIdRange (header, source, test) EventIdRange is a sequential collection of event identifiers for a common run.

EventIdList (header, source, test) EventIdList is ordered container of event identifiers. It has the interface of a C++ set.

ContentIdList (header, source, test) ContentIdList is an ordered collection of content identifiers. It has the interface of a C++ set.

DatasetIdList (header, source, test) DatasetIdList is an ordered collection of dataset identifiers. It has the interface of a C++ set.


dladams@bnl.gov