casacore
|
Basic classes and global functions for IO and object persistency. More...
Modules | |
IO_module_internal_classes | |
Internal IO_module classes and functions. | |
Classes | |
class | casacore::AipsIO |
AipsIO is the object persistency mechanism of Casacore. More... | |
struct | casacore::AipsIOCarray_global_functions_AipsIOCarray |
Templated functions to get/put a C-style array from/into AipsIO. More... | |
struct | casacore::ArrayIO_global_functions_Array_IO |
Input/output operators for Arrays. More... | |
struct | casacore::ArrayIO_global_functions_Array_binary_IO |
Global functions to read/write binary arrays from/to a file. More... | |
class | casacore::BaseSinkSource |
Shared base class for ByteSink and ByteSource. More... | |
class | casacore::BucketBuffered |
Use buffered file IO for buckets in a part of a file. More... | |
struct | casacore::BucketCache_global_functions_BucketCache_CallBack |
Define the type of the static read and write function. More... | |
class | casacore::BucketCache |
Cache for buckets in a part of a file. More... | |
class | casacore::BucketMapped |
Use file mapping for buckets in a part of a file. More... | |
class | casacore::ByteIO |
Abstract base class for IO on a byte stream. More... | |
class | casacore::ByteSink |
Class for write-only access to data in a given format. More... | |
class | casacore::ByteSinkSource |
Class for read/write access to data in a given format. More... | |
class | casacore::ByteSource |
Class for read-only access to data in a given format. More... | |
class | casacore::CanonicalIO |
Class for IO in canonical format. More... | |
class | casacore::ConversionIO |
Class for IO in a converted format. More... | |
class | casacore::FilebufIO |
Class for buffered IO on a file. More... | |
class | casacore::FiledesIO |
Class for unbuffered IO on a file. More... | |
class | casacore::FileLocker |
Class to handle file locking. More... | |
class | casacore::LECanonicalIO |
Class for IO in little endian canonical format. More... | |
class | casacore::LockFile |
Class to handle file locking and synchronization. More... | |
class | casacore::MemoryIO |
Class for IO to a memory buffer. More... | |
class | casacore::MFFileIO |
Class for IO on a virtual file in a MultiFileBase. More... | |
class | casacore::MMapfdIO |
Memory-mapped IO on a file. More... | |
class | casacore::MMapIO |
Memory-mapped IO on a file. More... | |
class | casacore::MultiFile |
Class to combine multiple files in a single one. More... | |
struct | casacore::MultiFileBuffer |
Helper class for MultiFileInfo holding a data buffer. More... | |
class | casacore::MultiFileBase |
Abstract base class to combine multiple files in a single one. More... | |
class | casacore::MultiHDF5 |
Class to combine multiple files in a single HDF5 file. More... | |
class | casacore::RawIO |
Class for IO in local format. More... | |
class | casacore::RegularFileIO |
Class for IO on a regular file. More... | |
class | casacore::StreamIO |
Class for IO on connection oriented socket. More... | |
class | casacore::TapeIO |
Class for IO on a tape device. More... | |
class | casacore::TypeIO |
Abstract base class for IO of data in a type-dependent format. More... | |
Basic classes and global functions for IO and object persistency.
See below for an overview of the classes in this module.
This module provides the basic IO functionality for the Casacore classes. There are two IO mechanisms:
Both use the underlying IO framework which define where and how the data are written. The how-part is defined by classes derived from TypeIO as shown in the UML diagram. There are three such classes:
CanonicalIO reads/writes data in canonical (machine-independent) format. This should be used when data are meant to be exportable. It uses the conversion functions in class
The where-part is defined by classes derived from ByteIO as shown in the UML diagram. There are a few such classes:
stdio
system. However, it does not use stdio because that gave problems when doing concurrent access from multiple processes. It can handle files > 2 GB. open, read
to do IO directly. It does not use an internal buffer. Instead it always does physical IO. It is meant for IO operations where large chunks of a file are accessed and for IO on sockets, pipes, etc.. It can handle files > 2 GB. The IO framework is easily expandable. One can for instance think of a class AsciiIO
derived from TypeIO
to hold data in ASCII format. A class RemoteTapeIO
could be developed for IO on a tape device on another node.