Miscellaneous Utilities
The utilities library includes various support classes for general-purpose operations. These tools provide supporting functionality for the HOPS4 framework’s data processing, file I/O, time handling, and system integration requirements.
MHO_Tokenizer
Class |
|
Category |
Miscellaneous |
Configuration Parameters |
Delimiter strings (default: space)
Empty token inclusion
Multi-character delimiter support
Quote preservation
Whitespace trimming
|
Primary Functionality |
Configurable string tokenization |
Key Features |
Flexible delimiter configuration
Quote-aware parsing
Whitespace handling options
Empty token control
|
The MHO_Tokenizer class provides flexible string tokenization with configurable delimiters and parsing options including quote preservation and whitespace handling. This utility class is heavily used by the control file parsing library and vex parsing library.
MHO_UUID
Class |
|
Category |
Miscellaneous |
Primary Functionality |
128-bit UUID storage and manipulation |
Key Features |
16-byte UUID representation
String and integer conversion
Comparison operators
Support for stream operations
|
The MHO_UUID class provides 128-bit UUID storage and manipulation with some conversion capabilities and comparison operators for object identification.
MHO_UUIDGenerator
Class |
|
Category |
Miscellaneous |
Primary Functionality |
RFC 4122 compliant UUID generation |
Key Features |
Pseudo-random UUID generation
Follows RFC 4122 (v4) standard
String conversion utilities
|
The MHO_UUIDGenerator class generates a RFC-4122 (v4) compliant pseudo-random UUID for object identification. The random number generation is done via the STL Mersenne Twister algorithm.
MHO_MD5HashGenerator
Class |
|
Category |
Miscellaneous |
Template Parameters |
Variadic template for supported data types |
Primary Functionality |
MD5 hash generation for data integrity |
Key Features |
Streaming MD5 hash computation
Support for POD types and strings
UUID conversion from hash digests
|
The MHO_MD5HashGenerator class provides MD5 hash generation capabilities for data hasing/UUID creation. It has streaming support for various data types. The underlying implementation is done by the picohash.h header library. placed under public domain by Kazuho Oku.
Additional Utility Classes
The utilities library also includes several specialized utility classes/files:
MHO_BidirectionalIterator and MHO_BidirectionalStrideIterator - Iterator implementations for container traversal
MHO_Constants - Basic mathematical and physical constants
MHO_EncodeDecodeValue.hh - Value encoding and decoding utilities
MHO_ExtensibleElement - Base class for extensible data structures
MHO_IndexLabelInterface and MHO_IntervalLabelInterface - meta-data labeling
MHO_Interval - Interval representation and manipulation
MHO_JSONHeaderWrapper - JSON header wrapper for data serialization (wraps the nlohmann::json head-only library)
MHO_MPIInterface and MHO_MPIInterfaceWrapper.hh - basic MPI environment initialization/interaction
MHO_NumpyTypeCode() - Numpy type code creation
MHO_ParameterStore - Parameter storage and retrieval
MHO_Unit - Unit representation and conversion - NOT YET IMPLEMENTED
picohash.h - Lightweight hashing library placed under public domain by Kazuho Oku.