| CMAutomation::COMInitializer | Initialize and uninitialize COM in constructor and destructor |
| CMGuid::GUID | Define Windows-like GUID type on non-Windows platforms |
| CMSynchronizer::Locker | Scope based locker that acquires the lock at construction, and releases it at destruction |
| CMCriticalSection::Locker | Class that helps dealing with critical sections within a single execution scope |
| CMLogFile::LogFilePage | Page format of the monitor file |
| ▼CMBuffer | Buffer, a byte string with extra manipulation facilities |
| CMBufferBidirectional | Buffer where the data can be added to both the beginning and the end of the buffer |
| CMBufferCircular | Byte buffer with variable capacity that allows efficient buffering by having one reader/getter and one writer/putter |
| CMBufferReader | Buffer traverser or reader |
| CMClass | Notion of a class that serves as the base for the reflection API |
| CMCommandLineParser | Command line parser to help dealing with argv and argc arguments within function main |
| CMCriticalSection | System independent lightweight synchronization object |
| CMCurrentPathSubstitutor | Locally substitute the current path of an application to another current path |
| CMFileNameAndLineNumber | Memory saving fast copied storage for file name and file line |
| CMFindFile | Operating system and compiler independent way to search for file or directory |
| ▼CMGenericNoncopyablePtr< Type > | Generic pointer that cannot be copied |
| CMUniqueArrayPtr< Type > | Compiler version independent unique pointer to an array variable |
| CMUniquePtr< Type > | Compiler version independent unique pointer to a variable that is not an array |
| CMValueEndScopeSetter< Type > | Class that helps set a certain value when a certain scope exits |
| CMValueSavior< Type > | Class that helps preserve a certain value of a variable outside a local C++ scope |
| ▼CMGenericNoncopyablePtr< MException > | |
| CMUniquePtr< MException > | |
| CMInterlocked | System independent lightweight synchronization object that synchronizes the access to one variable across multiple threads |
| CMJavaEnv | Scoped Java environment handler |
| ▼CMLogFile | Abstract log file utility class to handle the log from the monitor |
| CMLogFileReader | Log file utility class to handle the log from the monitor |
| CMLogFileWriter | Log file writer, one that writes information to a file |
| CMMessageFile | Message file, internal implementation of file with international strings |
| ▼CMNonCopyable | Provides a simple and expressive way to declare non-copyable classes |
| CMDynamicLibrary | Wrapper for shared object (dll) API |
| ▼CMObject | Root object that establishes dynamic class information, dynamic property and method handling and marshaling |
| ►CMAes | AES encryption and decryption class |
| CMAesEax | AES encryption and decryption in EAX mode with authentication |
| CMAlgorithm | Set of various, mostly string related algorithms |
| CMAutomation | Wrapper class allows creating and using any Automation COM object |
| CMCOMFactory | Factory that is capable of creating MCOM objects |
| ►CMCOMObject | Root communication object that defines default property handling and configuration location |
| ►CMChannel | Abstraction of all channel-level communication media |
| ►CMChannelSerialPort | Serial port based channel, a null cable direct serial link or a link through a current loop adapter |
| CMChannelCurrentLoop | MChannelCurrentLoop implements methods necessary for handling RS-232 serial port |
| ►CMChannelModem | Modem channel is a channel based on serial port |
| CMChannelModemCallback | Modem callback channel is MChannelModem that has Auto Answer enabled by default |
| CMChannelOpticalProbe | Optical probe is a channel based on serial port that is able to control the batteries of the probe (if it exists) |
| ►CMChannelSocketBase | MChannelSocket implements the channel interface for an IP socket, either TCP or UDP |
| ►CMChannelSocket | MChannelSocket implements the channel interface for an TCP/IP socket |
| CMChannelSocketCallback | Socket callback channel is MChannelSocket that has Auto Answer enabled by default |
| ►CMChannelSocketUdp | Implements the channel interface for an UDP datagram socket |
| CMChannelSocketUdpCallback | Socket callback channel is MChannelSocketUdp that has Auto Answer enabled by default |
| ►CMProtocol | Abstraction of a communication protocol |
| ►CMProtocolC12 | Generic ANSI C12 abstract protocol, base for C12.18, C12.21, and C12.22 |
| ►CMProtocolC1218 | ANSI C12 18 protocol implementation, a further specialization of C12 set of protocols |
| CMProtocolC1221 | ANSI C12.21 protocol implementation |
| CMProtocolC1222 | ANSI C12.22 protocol implementation |
| CMDes | DES encryption and decryption class |
| CMDictionary | Dictionary of keys and their values, associative collection |
| CMErrorEnum | Error enumeration |
| ►CMException | Common exception base for MeteringSDK |
| ►CMCOMException | Root of every exception thrown by the MCOM component |
| CMEC12BadProcedureResult | Exception which is thrown for the erroneous ANSI C12 procedure response code |
| CMEC12NokResponse | Exception which is thrown in case the ANSI C12 meter responded with an error defined by the protocol |
| CMEChannelDisconnectedUnexpectedly | Exception which is thrown in case the channel is unexpectedly disconnected |
| CMEChannelReadTimeout | Exception which is thrown in case the timeout condition happens during reading from the channel |
| CMEChannelWriteTimeout | Exception which is thrown in case the timeout condition happens during writing to the channel |
| CMECollisionDetected | Exception which is thrown in case the channel detects the collision, and it has to yield to the peer |
| CMEIndexOutOfRange | Exception, array index is out of range |
| CMEMath | Exception, Error during mathematical operation |
| CMENumberOutOfRange | Exception, number is out of range |
| CMEOperationCancelled | Exception which is thrown in case the operation is canceled |
| CMESocketError | Sockets exception that is thrown in case of the sockets failure |
| CMESystemError | System-related exception that is thrown in case some system service fails |
| CMGuid | Global identifier (GUID) object |
| CMIniFile | Class that allows reading and writing the Windows-like INI files sequentially |
| CMIso8825 | A set of utilities to work with ISO 8825 data types |
| CMMath | MMath is derived from MObject, and it only has static properties and methods |
| CMMD5Checksum | MD5 Checksum updater and calculator class |
| CMMessageCatalog | Catalog of local strings |
| ►CMMonitor | Abstract monitor to watch communication |
| ►CMMonitorFile | Activity monitor object that dumps communication into a binary file |
| CMMonitorSocket | Activity monitor object based on a TCP socket |
| CMMonitorSyslog | Activity monitor object that dumps communication into a syslog |
| CMProgressAction | Representation of task activity |
| ►CMProgressListener | Listener interface that should be implemented in order to get updates from progress monitor |
| CMProgressMonitor::Listener | |
| CMProgressMonitor | ProgressMonitor manages a set of ProgressAction objects |
| CMRandomGenerator | Cryptographically secure random generator |
| CMRegexp | POSIX-like regular expression handler |
| CMRegistry | Provides the access to Windows registry, system dependent class |
| CMSockOptEnum | Enumerations and constants for socket options |
| CMStr | Provides static methods for string manipulation |
| ►CMStream | MStream is the base class of all streams |
| CMStreamExternalMemory | The random access stream, arranged on the memory chunk, that this class does not own |
| CMStreamFile | Classic file stream capable of manipulating files in the file system |
| CMStreamMemory | The random access stream in memory that is always open |
| ►CMStreamSocketBase | Abstract IP socket, either TCP or UDP |
| CMStreamSocket | TCP/IP socket, reliable stream |
| CMStreamSocketUdp | UDP datagram socket |
| CMTime | Value to represent a moment in time, consists of both date and time information |
| ►CMTimer | Timer with milliseconds resolution |
| CMUtilities | Provides useful services like timers, data type conversions, path and file manipulation, etc |
| ►CMTimeRecurrent | Abstract value to represent a recurrent time, a certain time that happens periodically |
| CMTimeRecurrentYearly | Yearly recurrent date |
| CMTimeSpan | Time span represents the difference between two times, a duration |
| CMTimeZone | Time zone |
| CMVersion | Version that has multiple fraction (subversion) numbers, up to a certain limit |
| ►CMXmlNode | DOM representation of XML node |
| CMXmlDocument | DOM representation of XML document |
| CMObjectPropertySavior | Class that helps preserve a property value outside a local C++ scope |
| CMPropertyDefinition | Property definition of the object |
| CMSerialPort | Serial port device |
| CMServiceDefinition | Service definition of the object |
| CMSharedPointer< C > | Generic intrusive shared pointer |
| ▼CMSynchronizer | Abstract synchronizer object |
| CMEvent | Class that supports event paradigm, synchronizer kind |
| CMSemaphore | Semaphore to be used to synchronize resource access |
| ▼CMThread | Operating system independent abstract thread |
| CMThreadCurrent | Thread instance that attaches to the current thread to allow manipulations with the thread parameters |
| CMThreadWorker | Abstract worker thread, the one optimized for doing work outside of the currently running thread |
| CMThreadLocalPointer< T > | Thread-local pointer, the one that will be different in every thread, API based portable implementation |
| CMVariant | Variant data type, where a particular value type is dynamically determined at runtime |
| CMVariant::ObjectByValue | Local placeholder class, used for passing small objects by value |
| CMStreamSocket::OperationHandler | Generic class that can be used for cancellation of open socket operation |
| CMLogFile::PacketHeader | Packet header structure |
| CMVariant::PointerBytesType | A hidden type of pointer size |
| CMGuid::RawGuidType | System independent representation of GUID, 16 bytes long randomized byte string |
| CMChannel::ReadTimeoutSavior | Temporarily overrides read timeout with a new value using scope rules |
| CMProtocol::TableRawData | Table raw data associated with the table number |
| CMChannel::UninterruptibleCommunication | Uninterruptible communication C++ wrapper |