FrameCPP Library Introduction

1. Purpose

The library supports the following operations:

  1. Reading frames from a stream into a collection of C++ classes representing the data. The stream must be inherited from the standard C++ istream class (for example, an ifstream or an istrstream).
  2. Writing data to a stream in frame format. The stream must be inherited from the standard C++ ostream class.
  3. Manipulation/Creation of frame data in memory.

2. Design

Library design follows closely the Specification of a Common Data Frame Format for Interferometric Gravitational Wave Detectors. This documents has LIGO document number T970130. There were several revisions of this document and the FrameCPP library is maintained to support the latest revision. It will read older revision frame files, but it will only write frame files of the latest specification.

3. I/O

Frame files are first created in memory and linked as a tree of objects. This tree approximately corresponds to the relationship of data structures in a frame file. There are methods to create new objects and to insert new objects into a tree. Also there are functions to search the frame tree using different criteria.

After frame data is created in memory it can be written out to disk to create a frame file.

Frame file can be opened and read. There are two different ways to access frame file data. Frame could be read completely and thus the whole frame tree will be created in memory or the data access could be based on the table of contents if it is present in the frame file. Second method could be used to speed up reading of large frame files and to avoid allocating too much memory.


Last modified: Tue Jul 31 16:32:11 PDT 2001