SEAL Utilities

LCG Project | LCG Applications Area SEAL Project | Project Portal | $Date: 2004/07/05 09:20:07 $

Basic abstraction utilities Foundation utilities Miscellanea


String and Text Processing

Formatting and string parsing
* format Type-safe 'printf-like' format operations Boost
* lexical_cast Consistent common conversion Boost
* LongLong iostream operators for "long long" types SealBase
. StringFormat Comment: To be unified; nicer syntax than boost format, but more limited SealBase
. ioutils Comment: boost format and lexical_cast to be performance tested COBRA
Regular expressions
* Regexp, RegexpMatch Perl (PCRE), POSIX and Bourne shell filename patternregular expressions SealBase
* StringOps Common string operations (find, replace, join, split, ...) SealBase
. Regex++ Comment: Prefer PCRE regex engine Boost
Tokenisation
* StringOps String splitting, sectioning SealBase
* Argz Secure tokenisation and construction of command lines SealBase
. Tokenizer Comment: Iterator interface, more options, check performance Boost
. SimpleTokenizer Comment: Prefer boost, merge with StringOps, or retains separate iterator? HepUtilities

Containers

Custom container types
* array Constant-size array, optimised for size invariance Boost
* multi_array Multi-dimensional arrays Boost
* graph Graph Boost
* property_map Property map Boost
* PODVector std::vector-like container that is a POD SealBase
* TSqueue Producer-consumer queue with throttling COBRA
. MTmap Thread-safe map COBRA
. HashVector Hash table COBRA
Bitsets
* dynamic_bitset Dynamic bitset Boost
. BitArray Static bitset COBRA
. BitVector Dynamic bitset COBRA
Tuples and holders
* any Dynamically typed variable Boost
* tuple Multiple return values (tuple) Boost
* Range Range object SealBase
* Sequence Sequence number generator SealBase

Iterators

General
* multi_array  Multi-dimensional arrays Boost
* graph Graph Boost
Iterator adaptors
* iterator_adaptors Iterator adaptors Boost
. deref_iterator Automatically dereference pointers (for containers of pointers) COBRA
* MapValueIterator std::map iterator to extract values only SealBase
* MapUniqueIterator std::multimap iterator to skip duplicate keys SealBase
Bit/data extraction tools
* BitIterator Extracting bits from raw data SealBase
Tokenisers
. Tokenizer Comment: Iterator interface, more options, check performance Boost
. SimpleTokenizer Comment: Prefer boost, merge with StringOps, or retains separate iterator? HepUtilities
Utilities for building custom iterators
* operators Templates for iterators Boost

Algorithms

* graph Graph Boost
* operators Templates for arithmetic types Boost

Memory management

Smart pointers
* smart_ptr Smart pointers Boost
. Loki smart pointer Comment: Superset of Boost Loki
. Unwind Simple auto_ptr replacement SealBase
. own_ptr Simple auto_ptr replacement COBRA
Memory management
* pool Segragated storage (memory pools) Boost
* LowMemoryPool Graceful degradation in case of memory exhaustion SealBase
* DebugAids Memory validation for robustness SealBase

Higher-order programming

Callback objects
* function Callback (rich but need to verify compiler support) Boost
* signals Signals and slots (rich but need to verify compiler support) Boost
. Callback Callback (replace with boost if it works well enough) SealBase
. Hook Callback with return value (replace with boost if...) SealBase
. HookList Callback list with abortable processing (use boost if...) SealBase
Other function objects
* bind1st, bind2nd, ... Basic function adaptors C++
* functional Improved function adaptors Boost
* bind,mem_fn, ref Binders Boost
* compose Function composition Boost
* lambda Anonymous functions Boost

Generic programming

* call_traits Deduce best way to pass a parameter Boost
* type_traits Properties, relationships and transformations of types Boost
* concept_check Template argument conformance ("concept") checks Boost
* static_assert Compile-time assertion of constant expressions Boost
. mpl Meta-programming framework Boost

Greenspun

* MultiMethod Multi-methods (functions polymorphic in 1..n arguments) SealBase
. MultiMethod Another multi-method implementation Loki
* tuple Multiple return values (tuple) Boost
. mpl Meta-programming framework Boost
. Tuple Comment: Look at it Loki

Bits and numerics

* BitIterator Iterate over bits in raw data SealBase
* BitOps Bit-level operations (ceiling, log, parity, reverse, ...) SealBase
* BitPattern Compile-time bit pattern construction SealBase
* BitTraits Bit properties of types SealBase
* IntBits Platform-indepedent type selection by bit width SealBase
* LongLong Platform-independent "long long" type and constants SealBase
* IntTraits Numeric properties of integral types SealBase
* PackSignedInt Pack signed bit fields COBRA
* UnPackSignedInt Unpack signed bit fields COBRA

Debugging and robustness

* DebugAids Assertions SealBase
* DebugAids Memory Validation SealBase
* DebugAids Stack trace SealBase
* DebugAids Programmatic core dump SealBase
* Log Debugging-oriented logging SealBase
* Signal Crash protection SealBase
* LowMemoryPool Low memory protection SealBase
* SaveErrno Save globals (errno) SealBase

Extended type information

* XTypeInfo Extensible std::type_info; Minimal meta-class information SealBase

Exceptions

* Error Exception base type SealBase

Concurrency

* thread Threads and synchronisation Boost
* ThreadUtils Higher-level abstractions on top of boost COBRA
* TSqueue Producer-consumer queue with throttling COBRA

System abstraction

Basic system ABI
* LongLong ABI types SealBase
* IntBits ABI types SealBase
* IntTraits ABI types SealBase
* BitTraits ABI types SealBase
Information
* HostInfo Host information, DNS lookup SealBase
* InetAddress DNS lookup SealBase
* ProcessInfo Process information SealBase
* ResourceInfo Program and system resource limits and usage SealBase
* SystemInfo System characteristics and resources SealBase
* UserInfo User info SealBase
System calls
* Signal Signal Handling SealBase
* SharedLibrary Dynamic linker, libraries present in program image SealBase
* SystemError Errors SealBase
* IOChannel System file descriptor-based I/O object SealBase
* SubProcess Subprocess invocation, pipe indirection SealBase
* Argz Secure tokenisation and construction of command lines SealBase
Environment
* ShellEnvironment Environment SealBase
. envUtil Environment COBRA

Basic I/O

Basic abstractions
* IOTypes Basic I/O types (sizes, offsets) SealBase
* IOBuffer User data buffer for I/O operations SealBase
* IOError I/O errors SealBase
* IOInput Abstract I/O input base class SealBase
* IOOutput Abstract I/O output base class SealBase
* IOChannel System file descriptor-based I/O object SealBase
* IOChannelPair Base class for a pair of connected I/O channels SealBase
* IOStatus Information on a file, device or a file descriptor SealBase
* Storage Abstract file-like storage base class SealBase
File system operations
* DirIterator Scan directory contents SealBase
* Filename File name and file system operations SealBase
* FileNameLock File name-based co-operative locking SealBase
Files
* File Disk-based files, named pipes SealBase
* TempFile Secure temporary file and directory handling SealBase
* Filename File name and file system operations SealBase
* FileAcl File permissions SealBase
* FileMapping Memory mapping files, anonymous mappings SealBase
* FileLock Advisory file locking SealBase
* FileNameLock File name-based co-operative locking SealBase
Locating files
* SearchPath Search for files in a list of directories SealBase
. FileInPath Search for files in a list of directories COBRA
* Filename File name and file system operations SealBase
* DirIterator Scan directory contents SealBase
Memory-mapping
* FileMapping Memory mapping files, anonymous mappings SealBase

IPC and Networking

Abstractions
* IOChannelPair Base class for a pair of connected I/O channels SealBase
* IOSelector Platform-independent I/O listener and dispatcher SealBase
Dispatching
* IOSelector Platform-independent I/O listener and dispatcher SealBase
Sockets
* Socket Socket base class SealBase
* SocketPair Pair of sockets connected to each other SealBase
* InetAddress TCP/IP network host address SealBase
* InetSocket TCP/IP socket SealBase
* InetServerSocket TCP/IP listening "server" socket SealBase
* LocalAddress Unix domain socket address (file system name) SealBase
* LocalSocket Unix domain socket (file system socket) SealBase
* LocalServerSocket Unix domain listening "server" socket SealBase
Pipes and subprocesses
* NamedPipeServer Named (file system) pipe SealBase
* Pipe Anonymous pipe SealBase
* SubProcess Subprocess invocation, pipe indirection SealBase
* Argz Secure tokenisation and construction of command lines SealBase
Temporary files
* TempFile Secure temporary file and directory handling SealBase

Stream-oriented I/O

Abstractions and utilities
* InputStream Abstract byte input stream SealIOTools
* OutputStream Abstract byte output stream SealIOTools
* FilterInputStream Abstract filter input stream SealIOTools
* FilterOutputStream Abstract filter output stream SealIOTools
* Storage Abstract file-like storage SealBase
* CustomStreamBuf Help for std::streambuf-derived types SealIOTools
* PushBackBuffer Utility for read buffers with push-back capability SealIOTools
* ReadBuffer Utility for bare read buffers SealIOTools
* ReadWriteBuffer Utility for combined read/write buffers with push-back SealIOTools
* WriteBuffer Utility for bare write buffers SealIOTools
Intermediaries
* BufferInputStream Input stream filter that buffers reads SealIOTools
* BufferOutputStream Output stream filter that buffers writes SealIOTools
* PushBackInputStream Input stream filter with push-back capability SealIOTools
* PipedInputStream Pair of streams connected by a pipe SealIOTools
* PipedOutputStream Pair of streams connected by a pipe SealIOTools
* StorageInputStream Input stream that reads from a Storage SealIOTools
* StorageOutputStream Output stream that writes into a Storage SealIOTools
Bindings
* IOChannelInputStream Input stream bridge to IOChannel SealIOTools
* IOChannelOutputStream Output stream bridge to IOChannel SealIOTools
* IOChannelStreamBuf std::streambuf bridge to IOChannel SealIOTools
* InputStreamBuf std::streambuf bridge to InputStream SealIOTools
* OutputStreamBuf std::streambuf bridge to OutputStream SealIOTools
* MemoryStorage In-memory buffer implementation of Storage SealIOTools
* StdInputStream Input stream bridge to std::istream SealIOTools
* StdOutputStream Output stream bridge to std::ostream SealIOTools
* StdStorage Storage bridge to std::iostream SealIOTools
* StdioStorage Storage bridge to C STDIO "FILE *" SealIOTools
* StorageStreamBuf std::streambuf bridge to a Storage SealIOTools
Storage
* Storage Abstract file-like storage SealBase
* MemoryStorage In-memory buffer implementation of Storage SealIOTools
* StdStorage Storage bridge to std::iostream SealIOTools
* StdioStorage Storage bridge to C STDIO "FILE *" SealIOTools
* StorageStreamBuf std::streambuf bridge to a Storage SealIOTools

Compression

Engines
* Compressor Abstract base class for a compression engine SealZip
* Decompressor Abstract base class for a decompression engine SealZip
* InteractiveCompressor Interactive (piece-wise) compressor adaptor SealZip
* InteractiveDecompressor Interactive (piece-wise) decompressor adaptor SealZip
* BZCompressor BZIP compressor engine SealZip
* BZDecompressor BZIP decompressor engine SealZip
* ZCompressor ZLIB compressor engine SealZip
* ZDecompressor ZLIB decompressor engine SealZip
Stream I/O
* CompressOutputStream Compressing FilterOutputStream SealZip
* DecompressInputStream Decompressing FilterInputStream SealZip
* BZIPInputStream BZIP-decompressing FilterInputStream SealZip
* BZIPOutputStream BZIP-compressing FilterOutputStream SealZip
* ZInputStream ZLIB-decompressing FilterInputStream SealZip
* ZOutputStream ZLIB-compressing FilterOutputStream SealZip
* GZIPInputStream GZIP-decompressing FilterInputStream SealZip
* GZIPOutputStream GZIP-compressing FilterOutputStream SealZip
* ZipInputStream ZIP archive FilterInputStream reader SealZip
* ZipOutputStream ZIP archive FilterOutputStream writer SealZip
Files
* ZipMember Member of a ZIP archive SealZip
* ZipArchive Random-access ZIP archive using a Storage SealZip
* ZipInputStream ZIP archive FilterInputStream reader SealZip
* ZipOutputStream ZIP archive FilterOutputStream writer SealZip

Data validation

Digests
* Digest Abstract base class for a digest generator SealZip
* MD5Digest MD5 (RFC 1321) message digest SealZip
* SHA1Digest SHA1 (RFC 3174) message digest SealZip
Checksumming
* Checksum Abstract base class for a checksum generator SealZip
* Adler32 Adler-32 checksum generator SealZip
* CRC32 CRC-32 checksum generator SealZip
* CheckedInputStream Checksumming FilterInputStream SealZip
* CheckedOutputStream Checksumming FilterOutputStream SealZip

Archive files

* CPIOInputStream CPIO archiveFilterInputStream reader SealZip
* CPIOOutputStream CPIO archiveFilterOutputStream writer SealZip
* CPIOMember Member of a CPIO archive SealZip
* TarInputStream TAR archiveFilterInputStream reader SealZip
* TarOutputStream TAR archiveFilterOutputStream writer SealZip
* TarMember Member of a TAR archive SealZip
* ZipInputStream ZIP archiveFilterInputStream reader SealZip
* ZipOutputStream ZIP archiveFilterOutputStream writer SealZip
* ZipMember Member of a ZIP archive SealZip
* ZipArchive Random-accessZIP archiveusing a Storage SealZip

Time

* Time, TimeSpan High-resolution calendar time SealBase
. SimpleTime Calendar time HepUtilities
. date_time Calendar time Boost
* TimeInfo High-resolution performance timing SealBase
. timer Boost
. xtime Boost
. TimeMe Timing: implement in services layer COBRA
. TimeReport Timing report: implement in services layer COBRA
. GenTimer COBRA
. HepTime COBRA
. HepTimer COBRA
. CMSTime COBRA
. CMSTimer COBRA
. LinuxCPUTime Timing: implement different timers in services layer COBRA

Testing

. test Testing Boost

CLHEP functionality

. Hep* Matrices CLHEP
. array Matrices Blitz++
. gsl_matrix Matrices GSL
. uBLAS Matrices Boost
. random Random numbers Boost
. random Random numbers GSL

Unclassified

. Registry Registry Classlib
. Environment Environment SealBase
. Range Range SealBase
. Sequence Generators SealBase
. PackageInitializer Initialisation COBRA
. SmartCounter Bean Counting COBRA
. UnitsByName Units COBRA
. NetLogging Logging COBRA
. CreateStatic Static objects COBRA
* UUID UUID SealBase
. UUID UUID COBRA
Dispatching
. AutoFlag COBRA
. Flag COBRA
. DispKey COBRA
. Notification (package) COBRA
. Communicator (package) COBRA
Services
. program_options Command line options, configuration files Boost
. CmdLine (package) Command line COBRA
. BaseMonitor (package) Monitoring, synchronisation COBRA
. Configuration (package) Platform adaptation COBRA
. UI (package) Job configuration, parameters COBRA
. W3Tools (package) HTML production COBRA