EPICS ARCHIVER V4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups
Classes | Typedefs | Enumerations | Enumerator | Functions | Variables
Storage Library

The Storage Library allows read and write access to the binary data files. More...

Classes

class  AutoIndex
 General Index for reading. More...
 
class  AverageReader
 Reads data from storage, averaging over the raw samples. More...
 
class  NumericInfo
 CtrlInfo for numeric values. More...
 
class  EnumeratedInfo
 CtrlInfo for enumerated channels. More...
 
class  CtrlInfoData
 A glorified union of NumericInfo and EnumeratedInfo. More...
 
class  CtrlInfo
 Meta-information for values: Units, limits, etc . More...
 
class  DataReader
 Reads data from storage. More...
 
class  FileAllocator
 Maintains memory blocks within a file. More...
 
class  HashTable
 Hash table. More...
 
class  Index
 Base interface for the archiver's indices. More...
 
class  Index::Result
 Return value of addChannel() and findChannel() More...
 
class  Index::NameIterator
 Name iterator. More...
 
class  IndexFile
 RTree-based index file. More...
 
class  Interval
 A time interval. More...
 
class  LinearReader
 Reads data from storage with linear interpolation. More...
 
class  ListIndex
 Index based on list of sub-archives. More...
 
class  PlotReader
 Reads data from storage, modified for plotting. More...
 
class  RawDataReader
 An implementation of the DataReader for raw data. More...
 
class  RawValue
 Helper class for raw dbr_time_xxx values. More...
 
class  RawValueAutoPtr
 AutoPtr for RawValue. More...
 
class  ReaderFactory
 Create one of the DataReader class instances. More...
 
class  RTree
 Implements a file-based RTree. More...
 
class  ShallowIndexRawDataReader
 RawDataReader that understands 'shallow' indices. More...
 
class  SpreadsheetReader
 Reads data from storage, formatted as spreadsheet. More...
 
class  ea4::ChanInfo
 Container with the meta-information, including type. More...
 
class  DataFile
 Binary Data File. More...
 
class  DataHeader
 Used by DataFile. More...
 
class  DataWriter
 Writes data to storage. More...
 
class  RawDataReaderEA3
 An implementation of the DataReader for raw data. More...
 

Typedefs

typedef unsigned short DbrType
 DbrType is used to hold dbr_time_xxx types.
 
typedef unsigned short DbrCount
 DbrCount is used to hold the array size of CA channels.
 
typedef uint32_t FileOffset
 FileOffset is used as a system independent type for, well, offsets into files. More...
 

Enumerations

enum  Index::ReadWrite { ReadOnly, ReadAndWrite }
 Modes used for open.
 
enum  RawValueSpecialSeverities {
  ARCH_BASE_MASK = 0x0007, ARCH_EST_REPEAT = 0x0f80, ARCH_DISCONNECT = 0x0f40, ARCH_STOPPED = 0x0f20,
  ARCH_REPEAT = 0x0f10, ARCH_DISABLED = 0x0f08
}
 Non-CA events to the archiver; some are archived - some are directives. More...
 

Functions

 Index::Index ()
 Constructor.
 
virtual Index::~Index ()
 Destructor.
 
virtual void Index::open (const stdString &filename, ReadWrite readwrite=ReadOnly)=0
 Open an index. More...
 
const std::string & Index::getFilename ()
 Get the basename. More...
 
const std::string & Index::getDirectory ()
 Get the directory. More...
 
const stdString & Index::getFullName ()
 
virtual void Index::close ()=0
 Close the index. More...
 
 Index::Result::Result (RTree *tree, const stdString &directory)
 Construct result. More...
 
 Index::Result::~Result ()
 Destructor, deletes the RTree pointer. More...
 
RTreeIndex::Result::getRTree () const
 
const stdString & Index::Result::getDirectory () const
 
virtual Result * Index::addChannel (const stdString &channel)=0
 Add a channel to the index. More...
 
virtual Result * Index::findChannel (const stdString &channel)=0
 Obtain the RTree for a channel. More...
 
virtual Index::NameIterator::~NameIterator ()
 Destructor.
 
virtual bool Index::NameIterator::isValid () const =0
 
virtual const stdString & Index::NameIterator::getName () const =0
 
virtual void Index::NameIterator::next ()=0
 Get next entry. More...
 
virtual NameIterator * Index::iterator ()=0
 Get NameIterator, located on first channel. More...
 

Variables

const FileOffset INVALID_OFFSET = 0xffffffff
 Used internally for offsets inside files:
 

Detailed Description

The Storage Library allows read and write access to the binary data files.

@{

-*- c++ -*-

It replaces LibIO, for those who used the ChannelArchiver for EPICS R3.13.

To get started, see Index and DataReader.

Typedef Documentation

typedef uint32_t FileOffset

FileOffset is used as a system independent type for, well, offsets into files.

Enumeration Type Documentation

Non-CA events to the archiver; some are archived - some are directives.

Function Documentation

virtual Result* Index::addChannel ( const stdString &  channel)
pure virtual

Add a channel to the index.

A channel has to be added before data blocks get defined for the channel. When channel is already in index, existing tree gets returned.

Returns
Result. Caller must delete.
Exceptions
GenericExceptionon internal error.

Implemented in IndexFile, and AutoIndex.

virtual void Index::close ( )
pure virtual

Close the index.

Implemented in ListIndex, IndexFile, and AutoIndex.

virtual Result* Index::findChannel ( const stdString &  channel)
pure virtual

Obtain the RTree for a channel.

Directory is set to the path/directory of the index, which together with the data block in the RTree will then lead to the actual data files.

Returns
Result or 0. Caller must delete.
Exceptions
GenericExceptionon internal error.

Implemented in IndexFile, and AutoIndex.

const std::string& Index::getDirectory ( )
inline

Get the directory.

Returns
Dirname of this index.
See Also
getFilename()
const stdString& Index::Result::getDirectory ( ) const
inline
Returns
Base directory for all file names in the RTree.
const std::string& Index::getFilename ( )
inline

Get the basename.

Returns
Filename of this index.
See Also
getDirectory()
const stdString& Index::getFullName ( )
inline
Returns
Full filename, directory and base.
See Also
getDirectory()
getFilename()
virtual const stdString& Index::NameIterator::getName ( ) const
pure virtual
Returns
Current channel name.
RTree* Index::Result::getRTree ( ) const
inline
Returns
RTree part of the result.
virtual bool Index::NameIterator::isValid ( ) const
pure virtual
Returns
true if valid
virtual NameIterator* Index::iterator ( )
pure virtual

Get NameIterator, located on first channel.

Returns
Returns iterator. Might not be 'valid'. Caller must delete.
Exceptions
GenericExceptionon error.

Implemented in ListIndex, IndexFile, and AutoIndex.

virtual void Index::NameIterator::next ( )
pure virtual

Get next entry.

See Also
isValid
virtual void Index::open ( const stdString &  filename,
ReadWrite  readwrite = ReadOnly 
)
pure virtual

Open an index.

Exceptions
GenericExceptionon error (file not found, wrong file format, ...).

Implemented in IndexFile, and AutoIndex.

Index::Result::Result ( RTree tree,
const stdString &  directory 
)

Construct result.

Only used inside Index implementation.

Index::Result::~Result ( )

Destructor, deletes the RTree pointer.