Namespace Poco
Author: Applied Informatics Software Engineering GmbH and Contributors

# ::

# namespace Poco

## Overview

Namespaces: Crypto, Data, Dynamic, Impl, JSON, MongoDB, Net, Util, XML, Zip

Classes: ASCIIEncoding, AbstractCache, AbstractDelegate, AbstractEvent, AbstractInstantiator, AbstractMetaObject, AbstractObserver, AbstractPriorityDelegate, AbstractStrategy, AbstractTimerCallback, AccessExpirationDecorator, AccessExpireCache, AccessExpireLRUCache, AccessExpireStrategy, ActiveDispatcher, ActiveMethod, ActiveResult, ActiveResultHolder, ActiveRunnable, ActiveRunnableBase, ActiveStarter, Activity, AlignOf, AlignedCharArrayUnion, AlignmentCalcImpl, Any, ApplicationException, ArchiveByNumberStrategy, ArchiveByTimestampStrategy, ArchiveStrategy, Array, Ascii, AssertionViolationException, AsyncChannel, AtomicCounter, AutoPtr, AutoReleasePool, BadCastException, Base32Decoder, Base32DecoderBuf, Base32DecoderIOS, Base32Encoder, Base32EncoderBuf, Base32EncoderIOS, Base64Decoder, Base64DecoderBuf, Base64DecoderIOS, Base64Encoder, Base64EncoderBuf, Base64EncoderIOS, BasicBufferedBidirectionalStreamBuf, BasicBufferedStreamBuf, BasicEvent, BasicFIFOBuffer, BasicMemoryBinaryReader, BasicMemoryBinaryWriter, BasicMemoryStreamBuf, BasicUnbufferedStreamBuf, BinaryReader, BinaryWriter, Buffer, BufferAllocator, Bugcheck, BugcheckException, ByteOrder, CILess, Channel, Checksum, ChildrenFirstTraverse, CircularReferenceException, ClassLoader, Clock, ColorConsoleChannel, Condition, Configurable, ConsoleChannel, CountingIOS, CountingInputStream, CountingOutputStream, CountingStreamBuf, CreateFileException, DataException, DataFormatException, DateTime, DateTimeFormat, DateTimeFormatter, DateTimeParser, Debugger, DefaultStrategy, DeflatingIOS, DeflatingInputStream, DeflatingOutputStream, DeflatingStreamBuf, Delegate, DigestBuf, DigestEngine, DigestIOS, DigestInputStream, DigestOutputStream, DirectoryIterator, DirectoryWatcher, DynamicFactory, EOFToken, Environment, Error, ErrorHandler, Event, EventArgs, EventLogChannel, Exception, ExistsException, ExpirationDecorator, Expire, ExpireCache, ExpireLRUCache, ExpireStrategy, FIFOBufferStream, FIFOBufferStreamBuf, FIFOEvent, FIFOIOS, FIFOStrategy, FPEnvironment, FastMutex, File, FileAccessDeniedException, FileChannel, FileException, FileExistsException, FileIOS, FileInputStream, FileNotFoundException, FileOutputStream, FileReadOnlyException, FileStream, FileStreamFactory, Formatter, FormattingChannel, FunctionDelegate, FunctionPriorityDelegate, Getter, Glob, HMACEngine, Hash, HashFunction, HashMap, HashMapEntry, HashMapEntryHash, HashSet, HashStatistic, HashTable, HexBinaryDecoder, HexBinaryDecoderBuf, HexBinaryDecoderIOS, HexBinaryEncoder, HexBinaryEncoderBuf, HexBinaryEncoderIOS, IOException, IllegalStateException, InflatingIOS, InflatingInputStream, InflatingOutputStream, InflatingStreamBuf, InputLineEndingConverter, InputStreamConverter, Instantiator, InvalidAccessException, InvalidArgumentException, InvalidToken, IsConst, IsReference, KeyValueArgs, LRUCache, LRUStrategy, Latin1Encoding, Latin2Encoding, Latin9Encoding, LibraryAlreadyLoadedException, LibraryLoadException, LineEnding, LineEndingConverterIOS, LineEndingConverterStreamBuf, LinearHashTable, ListMap, LocalDateTime, LogFile, LogIOS, LogStream, LogStreamBuf, Logger, LoggingFactory, LoggingRegistry, LogicException, MD4Engine, MD5Engine, Manifest, ManifestBase, MemoryIOS, MemoryInputStream, MemoryOutputStream, MemoryPool, Message, MetaObject, MetaSingleton, Mutex, NDCScope, NObserver, NamedEvent, NamedMutex, NamedTuple, NestedDiagnosticContext, NoPermissionException, NoThreadAvailableException, NotFoundException, NotImplementedException, Notification, NotificationCenter, NotificationQueue, NotificationStrategy, NullChannel, NullIOS, NullInputStream, NullMutex, NullOutputStream, NullPointerException, NullStreamBuf, NullTypeList, NullValueException, Nullable, NumberFormatter, NumberParser, ObjectPool, Observer, OpcomChannel, OpenFileException, Optional, OutOfMemoryException, OutputLineEndingConverter, OutputStreamConverter, PBKDF2Engine, Path, PathNotFoundException, PathSyntaxException, PatternFormatter, Pipe, PipeIOS, PipeInputStream, PipeOutputStream, PipeStreamBuf, Placeholder, PoolOverflowException, PoolableObjectFactory, PriorityDelegate, PriorityEvent, PriorityExpire, PriorityNotificationQueue, PriorityStrategy, Process, ProcessHandle, PropertyNotSupportedException, ProtocolException, PurgeByAgeStrategy, PurgeByCountStrategy, PurgeStrategy, RWLock, Random, RandomBuf, RandomIOS, RandomInputStream, RangeException, ReadFileException, RecursiveDirectoryIterator, RecursiveDirectoryIteratorImpl, RefCountedObject, ReferenceCounter, RegularExpression, RegularExpressionException, ReleaseArrayPolicy, ReleasePolicy, RotateAtTimeStrategy, RotateByIntervalStrategy, RotateBySizeStrategy, RotateStrategy, Runnable, RunnableAdapter, RuntimeException, SHA1Engine, ScopedLock, ScopedLockWithUnlock, ScopedRWLock, ScopedReadRWLock, ScopedUnlock, ScopedWriteRWLock, Semaphore, SharedLibrary, SharedMemory, SharedPtr, SiblingsFirstTraverse, SignalException, SignalHandler, SimpleFileChannel, SimpleHashTable, SingletonHolder, SortedDirectoryIterator, SplitterChannel, Stopwatch, StrategyCollection, StreamChannel, StreamConverterBuf, StreamConverterIOS, StreamCopier, StreamTokenizer, StringTokenizer, SynchronizedObject, SyntaxException, SyslogChannel, SystemException, TLSAbstractSlot, TLSSlot, Task, TaskCancelledNotification, TaskCustomNotification, TaskFailedNotification, TaskFinishedNotification, TaskManager, TaskNotification, TaskProgressNotification, TaskStartedNotification, TeeIOS, TeeInputStream, TeeOutputStream, TeeStreamBuf, TemporaryFile, TextBufferIterator, TextConverter, TextEncoding, TextIterator, Thread, ThreadLocal, ThreadLocalStorage, ThreadPool, ThreadTarget, TimedNotificationQueue, TimeoutException, Timer, TimerCallback, Timespan, Timestamp, Timezone, Token, TraverseBase, Tuple, TypeList, TypeListType, TypeWrapper, URI, URIRedirection, URIStreamFactory, URIStreamOpener, UTF16CharTraits, UTF16Encoding, UTF32CharTraits, UTF32Encoding, UTF8, UTF8Encoding, UUID, UUIDGenerator, UnhandledException, Unicode, UnicodeConverter, UniqueAccessExpireCache, UniqueAccessExpireLRUCache, UniqueAccessExpireStrategy, UniqueExpireCache, UniqueExpireLRUCache, UniqueExpireStrategy, UnknownURISchemeException, ValidArgs, Void, WhitespaceToken, Windows1250Encoding, Windows1251Encoding, Windows1252Encoding, WindowsColorConsoleChannel, WindowsConsoleChannel, WriteFileException, i_char_traits

Types: BufferedBidirectionalStreamBuf, BufferedStreamBuf, DynamicAny, DynamicStruct, FIFOBuffer, FPE, Int16, Int32, Int64, Int8, IntPtr, MemoryBinaryReader, MemoryBinaryWriter, MemoryStreamBuf, NDC, SiblingsFirstRecursiveDirectoryIterator, SimpleRecursiveDirectoryIterator, UInt16, UInt32, UInt64, UInt8, UIntPtr, UTF16Char, UTF16String, UTF32Char, UTF32String, UnbufferedStreamBuf, istring

Functions: AnyCast, RefAnyCast, UnsafeAnyCast, alignOf, cat, decimalSeparator, delegate, doubleToStr, floatToStr, format, hash, icompare, intToStr, isubstr, operator !=, operator <, operator <<, operator <=, operator ==, operator >, operator >=, operator [], priorityDelegate, remove, removeInPlace, replace, replaceInPlace, strToDouble, strToFloat, strToInt, swap, thousandSeparator, toLower, toLowerInPlace, toUpper, toUpperInPlace, translate, translateInPlace, trim, trimInPlace, trimLeft, trimLeftInPlace, trimRight, trimRightInPlace, uIntToStr

## Namespaces

### namespace Crypto

### namespace Data

### namespace Dynamic

### namespace Impl

### namespace JSON

### namespace MongoDB

### namespace Net

### namespace Util

### namespace XML

### namespace Zip

## Classes

### class ASCIIEncoding

7-bit ASCII text encoding.

### class AbstractCache

An AbstractCache is the interface of all caches.

### class AbstractDelegate

Base class for Delegate and Expire.

### class AbstractEvent

An AbstractEvent is the base class of all events.

### class AbstractInstantiator

The common base class for all Instantiator instantiations.

### class AbstractMetaObject

A MetaObject stores some information about a C++ class.

### class AbstractObserver

The base class for all instantiations of the Observer and NObserver template classes.

### class AbstractPriorityDelegate

Base class for PriorityDelegate and PriorityExpire.

### class AbstractStrategy

An AbstractStrategy is the interface for all strategies.

### class AbstractTimerCallback

This is the base class for all instantiations of the TimerCallback template.

### class AccessExpirationDecorator

AccessExpirationDecorator adds an expiration method to values so that they can be used with the UniqueAccessExpireCache

### class AccessExpireCache

An AccessExpireCache caches entries for a fixed time period (per default 10 minutes).

### class AccessExpireLRUCache

An AccessExpireLRUCache combines LRU caching and time based expire caching.

### class AccessExpireStrategy

An AccessExpireStrategy implements time and access based expiration of cache entries

### class ActiveDispatcher

This class is used to implement an active object with strictly serialized method execution.

### class ActiveMethod

An active method is a method that, when called, executes in its own thread.

### class ActiveResult

Creates an ActiveResultHolder.

### class ActiveResultHolder

This class holds the result of an asynchronous method invocation.

### class ActiveRunnable

This class is used by ActiveMethod.

### class ActiveRunnableBase

The base class for all ActiveRunnable instantiations.

### class ActiveStarter

The default implementation of the StarterType policy for ActiveMethod.

### class Activity

This template class helps to implement active objects.

### struct AlignOf

A templated class that contains an enum value representing the alignment of the template argument.

### struct AlignedCharArrayUnion

Helper for building an aligned character array type.

### struct AlignmentCalcImpl

### class Any

An Any class represents a general type and is capable of storing any type, supporting type-safe extraction of the internally stored data.

### class ApplicationException

### class ArchiveByNumberStrategy

A monotonic increasing number is appended to the log file name.

### class ArchiveByTimestampStrategy

A timestamp (YYYYMMDDhhmmssiii) is appended to archived log files.

### class ArchiveStrategy

The ArchiveStrategy is used by FileChannel to rename a rotated log file for archiving.

### class Array

STL container like C-style array replacement class.

### class Ascii

This class contains enumerations and static utility functions for dealing with ASCII characters and their properties.

### class AssertionViolationException

### class AsyncChannel

A channel uses a separate thread for logging.

### class AtomicCounter

This class implements a simple counter, which provides atomic operations that are safe to use in a multithreaded environment.

### class AutoPtr

AutoPtr is a "smart" pointer for classes implementing reference counting based garbage collection.

### class AutoReleasePool

An AutoReleasePool implements simple garbage collection for reference-counted objects.

### class BadCastException

### class Base32Decoder

This istream base32-decodes all data read from the istream connected to it.

### class Base32DecoderBuf

This streambuf base32-decodes all data read from the istream connected to it.

### class Base32DecoderIOS

The base class for Base32Decoder.

### class Base32Encoder

This ostream base32-encodes all data written to it and forwards it to a connected ostream.

### class Base32EncoderBuf

This streambuf base32-encodes all data written to it and forwards it to a connected ostream.

### class Base32EncoderIOS

The base class for Base32Encoder.

### class Base64Decoder

This istream base64-decodes all data read from the istream connected to it.

### class Base64DecoderBuf

This streambuf base64-decodes all data read from the istream connected to it.

### class Base64DecoderIOS

The base class for Base64Decoder.

### class Base64Encoder

This ostream base64-encodes all data written to it and forwards it to a connected ostream.

### class Base64EncoderBuf

This streambuf base64-encodes all data written to it and forwards it to a connected ostream.

### class Base64EncoderIOS

The base class for Base64Encoder.

### class BasicBufferedBidirectionalStreamBuf

This is an implementation of a buffered bidirectional streambuf that greatly simplifies the implementation of custom streambufs of various kinds.

### class BasicBufferedStreamBuf

This is an implementation of a buffered streambuf that greatly simplifies the implementation of custom streambufs of various kinds.

### class BasicEvent

A BasicEvent uses the DefaultStrategy which invokes delegates in the order they have been registered.

### class BasicFIFOBuffer

A simple buffer class with support for re-entrant, FIFO-style read/write operations, as well as (optional) empty/non-empty/full (i.

### class BasicMemoryBinaryReader

A convenient wrapper for using Buffer and MemoryStream with BinaryReader.

### class BasicMemoryBinaryWriter

A convenient wrapper for using Buffer and MemoryStream with BinarWriter.

### class BasicMemoryStreamBuf

BasicMemoryStreamBuf is a simple implementation of a stream buffer for reading and writing from a memory area.

### class BasicUnbufferedStreamBuf

This is an implementation of an unbuffered streambuf that greatly simplifies the implementation of custom streambufs of various kinds.

### class BinaryReader

This class reads basic types (and std::vectors thereof) in binary form into an input stream.

### class BinaryWriter

This class writes basic types (and std::vectors of these) in binary form into an output stream.

### class Buffer

A buffer class that allocates a buffer of a given type and size in the constructor and deallocates the buffer in the destructor.

### class BufferAllocator

The BufferAllocator used if no specific BufferAllocator has been specified.

### class Bugcheck

This class provides some static methods that are used by the poco_assert_dbg(), poco_assert(), poco_check_ptr(), poco_bugcheck() and poco_unexpected() macros.

### class BugcheckException

### class ByteOrder

This class contains a number of static methods to convert between big-endian and little-endian integers of various sizes.

### struct CILess

Case-insensitive less-than functor; useful for standard maps and sets with std::strings keys and case-insensitive ordering requirement.

### class Channel

The base class for all Channel classes.

### class Checksum

This class calculates CRC-32 or Adler-32 checksums for arbitrary data.

### class ChildrenFirstTraverse

### class CircularReferenceException

### class ClassLoader

The ClassLoader loads C++ classes from shared libraries at runtime.

### class Clock

A Clock stores a monotonic* clock value with (theoretical) microseconds resolution.

### class ColorConsoleChannel

A channel that writes to an ostream.

### class Condition

A Condition is a synchronization object used to block a thread until a particular condition is met.

### class Configurable

A simple interface that defines getProperty() and setProperty() methods.

### class ConsoleChannel

A channel that writes to an ostream.

### class CountingIOS

The base class for CountingInputStream and CountingOutputStream.

### class CountingInputStream

This stream counts all characters and lines going through it.

### class CountingOutputStream

This stream counts all characters and lines going through it.

### class CountingStreamBuf

This stream buffer counts all characters and lines going through it.

### class CreateFileException

### class DataException

### class DataFormatException

### class DateTime

This class represents an instant in time, expressed in years, months, days, hours, minutes, seconds and milliseconds based on the Gregorian calendar.

### class DateTimeFormat

Definition of date/time formats and various constants used by DateTimeFormatter and DateTimeParser.

### class DateTimeFormatter

This class converts dates and times into strings, supporting a variety of standard and custom formats.

### class DateTimeParser

This class provides a method for parsing dates and times from strings.

### class Debugger

The Debugger class provides an interface to the debugger.

### class DefaultStrategy

Default notification strategy.

### class DeflatingIOS

The base class for DeflatingOutputStream and DeflatingInputStream.

### class DeflatingInputStream

This stream compresses all data passing through it using zlib's deflate algorithm.

### class DeflatingOutputStream

This stream compresses all data passing through it using zlib's deflate algorithm.

### class DeflatingStreamBuf

This is the streambuf class used by DeflatingInputStream and DeflatingOutputStream.

### class Delegate

### class DigestBuf

This streambuf computes a digest of all data going through it.

### class DigestEngine

This class is an abstract base class for all classes implementing a message digest algorithm, like MD5Engine and SHA1Engine.

### class DigestIOS

The base class for DigestInputStream and DigestOutputStream.

### class DigestInputStream

This istream computes a digest of all the data passing through it, using a DigestEngine.

### class DigestOutputStream

This ostream computes a digest of all the data passing through it, using a DigestEngine.

### class DirectoryIterator

The DirectoryIterator class is used to enumerate all files in a directory.

### class DirectoryWatcher

This class is used to get notifications about changes to the filesystem, more specifically, to a specific directory.

### class DynamicFactory

A factory that creates objects by class name.

### class EOFToken

This token class is used to signal the end of the input stream.

### class Environment

This class provides access to environment variables and some general system information.

### class Error

The Error class provides utility functions for error reporting.

### class ErrorHandler

This is the base class for thread error handlers.

### class Event

An Event is a synchronization object that allows one thread to signal one or more other threads that a certain event has happened.

### class EventArgs

The purpose of the EventArgs class is to be used as parameter when one doesn't want to send any data.

### class EventLogChannel

This Windows-only channel works with the Windows NT Event Log service.

### class Exception

This is the base class for all exceptions defined in the Poco class library.

### class ExistsException

### class ExpirationDecorator

ExpirationDecorator adds an expiration method to values so that they can be used with the UniqueExpireCache.

### class Expire

Decorator for AbstractDelegate adding automatic expiration of registrations to AbstractDelegate's.

### class ExpireCache

An ExpireCache caches entries for a fixed time period (per default 10 minutes).

### class ExpireLRUCache

An ExpireLRUCache combines LRU caching and time based expire caching.

### class ExpireStrategy

An ExpireStrategy implements time based expiration of cache entries

### class FIFOBufferStream

An output stream for writing to a FIFO.

### class FIFOBufferStreamBuf

This is the streambuf class used for reading from and writing to a FIFOBuffer.

### class FIFOEvent

A FIFOEvent uses internally a FIFOStrategy which guarantees that delegates are invoked in the order they were added to the event.

### class FIFOIOS

The base class for FIFOBufferInputStream and FIFOBufferStream.

### class FIFOStrategy

Note: As of release 1.

### class FPEnvironment

Instances of this class can be used to save and later restore the current floating point environment (consisting of rounding mode and floating-point flags).

### class FastMutex

A FastMutex (mutual exclusion) is similar to a Mutex.

### class File

The File class provides methods for working with a file.

### class FileAccessDeniedException

### class FileChannel

A Channel that writes to a file.

### class FileException

### class FileExistsException

### class FileIOS

The base class for FileInputStream and FileOutputStream.

### class FileInputStream

An input stream for reading from a file.

### class FileNotFoundException

### class FileOutputStream

An output stream for writing to a file.

### class FileReadOnlyException

### class FileStream

A stream for reading from and writing to a file.

### class FileStreamFactory

An implementation of the URIStreamFactory interface that handles file URIs.

### class Formatter

The base class for all Formatter classes.

### class FormattingChannel

The FormattingChannel is a filter channel that routes a Message through a Formatter before passing it on to the destination channel.

### class FunctionDelegate

Wraps a freestanding function or static member function for use as a Delegate.

### class FunctionPriorityDelegate

Wraps a freestanding function or static member function for use as a PriorityDelegate.

### struct Getter

### class Glob

This class implements glob-style pattern matching as known from Unix shells.

### class HMACEngine

This class implementes the HMAC message authentication code algorithm, as specified in RFC 2104.

### struct Hash

A generic hash function.

### struct HashFunction

A generic hash function.

### class HashMap

This class implements a map using a LinearHashTable.

### struct HashMapEntry

This class template is used internally by HashMap.

### struct HashMapEntryHash

This class template is used internally by HashMap.

### class HashSet

This class implements a set using a LinearHashTable.

### class HashStatistic

HashStatistic class bundles statistical information on the current state of a HashTable

### class HashTable

A HashTable stores a key value pair that can be looked up via a hashed key.

### class HexBinaryDecoder

This istream decodes all hexBinary-encoded data read from the istream connected to it.

### class HexBinaryDecoderBuf

This streambuf decodes all hexBinary-encoded data read from the istream connected to it.

### class HexBinaryDecoderIOS

The base class for HexBinaryDecoder.

### class HexBinaryEncoder

This ostream encodes all data written to it in BinHex encoding and forwards it to a connected ostream.

### class HexBinaryEncoderBuf

This streambuf encodes all data written to it in hexBinary encoding and forwards it to a connected ostream.

### class HexBinaryEncoderIOS

The base class for HexBinaryEncoder.

### class IOException

### class IllegalStateException

### class InflatingIOS

The base class for InflatingOutputStream and InflatingInputStream.

### class InflatingInputStream

This stream decompresses all data passing through it using zlib's inflate algorithm.

### class InflatingOutputStream

This stream decompresses all data passing through it using zlib's inflate algorithm.

### class InflatingStreamBuf

This is the streambuf class used by InflatingInputStream and InflatingOutputStream.

### class InputLineEndingConverter

InputLineEndingConverter performs line ending conversion on text input streams.

### class InputStreamConverter

This stream converts all characters read from the underlying istream from one character encoding into another.

### class Instantiator

A template class for the easy instantiation of instantiators.

### class InvalidAccessException

### class InvalidArgumentException

### class InvalidToken

This token class is used for signalling that an invalid character sequence has been encountered in the input stream.

### struct IsConst

Use this struct to determine if a template type is a const type.

### struct IsReference

Use this struct to determine if a template type is a reference.

### class KeyValueArgs

Simply event arguments class to transfer a key and a value via an event call.

### class LRUCache

An LRUCache implements Least Recently Used caching.

### class LRUStrategy

An LRUStrategy implements least recently used cache replacement.

### class Latin1Encoding

ISO Latin-1 (8859-1) text encoding.

### class Latin2Encoding

ISO Latin-2 (8859-2) text encoding.

### class Latin9Encoding

ISO Latin-9 (8859-15) text encoding.

### class LibraryAlreadyLoadedException

### class LibraryLoadException

### class LineEnding

This class defines valid line ending sequences for InputLineEndingConverter and OutputLineEndingConverter.

### class LineEndingConverterIOS

The base class for InputLineEndingConverter and OutputLineEndingConverter.

### class LineEndingConverterStreamBuf

This stream buffer performs line ending conversion on text streams.

### class LinearHashTable

This class implements a linear hash table.

### class ListMap

This class implements a multimap in terms of a sequential container.

### class LocalDateTime

This class represents an instant in local time (as opposed to UTC), expressed in years, months, days, hours, minutes, seconds and milliseconds based on the Gregorian calendar.

### class LogFile

This class is used by FileChannel to work with a log file.

### class LogIOS

The base class for LogStream.

### class LogStream

This class implements an ostream interface to a Logger.

### class LogStreamBuf

This class implements a streambuf interface to a Logger.

### class Logger

Logger is a special Channel that acts as the main entry point into the logging framework.

### class LoggingFactory

An extensible factory for channels and formatters.

### class LoggingRegistry

A registry for channels and formatters.

### class LogicException

### class MD4Engine

This class implementes the MD4 message digest algorithm, described in RFC 1320.

### class MD5Engine

This class implementes the MD5 message digest algorithm, described in RFC 1321.

### class Manifest

A Manifest maintains a list of all classes contained in a dynamically loadable class library.

### class ManifestBase

ManifestBase is a common base class for all instantiations of Manifest.

### class MemoryIOS

The base class for MemoryInputStream and MemoryOutputStream.

### class MemoryInputStream

An input stream for reading from a memory area.

### class MemoryOutputStream

An input stream for reading from a memory area.

### class MemoryPool

A simple pool for fixed-size memory blocks.

### class Message

This class represents a log message that is sent through a chain of log channels.

### class MetaObject

A MetaObject stores some information about a C++ class.

### class MetaSingleton

A SingletonMetaObject disables the create() method and instead offers an instance() method to access the single instance of its class.

### class Mutex

A Mutex (mutual exclusion) is a synchronization mechanism used to control access to a shared resource in a concurrent (multithreaded) scenario.

### class NDCScope

This class can be used to automatically push a context onto the NDC stack at the beginning of a scope, and to pop the context at the end of the scope.

### class NObserver

This template class implements an adapter that sits between a NotificationCenter and an object receiving notifications from it.

### class NamedEvent

An NamedEvent is a global synchronization object that allows one process or thread to signal an other process or thread that a certain event has happened.

### class NamedMutex

A NamedMutex (mutual exclusion) is a global synchronization mechanism used to control access to a shared resource in a concurrent (multi process) scenario.

### struct NamedTuple

### class NestedDiagnosticContext

This class implements a Nested Diagnostic Context (NDC), as described in Neil Harrison's article "Patterns for Logging Diagnostic Messages" in "Pattern Languages of Program Design 3" (Addison-Wesley).

### class NoPermissionException

### class NoThreadAvailableException

### class NotFoundException

### class NotImplementedException

### class Notification

The base class for all notification classes used with the NotificationCenter and the NotificationQueue classes.

### class NotificationCenter

A NotificationCenter is essentially a notification dispatcher.

### class NotificationQueue

A NotificationQueue object provides a way to implement asynchronous notifications.

### class NotificationStrategy

The interface that all notification strategies must implement.

### class NullChannel

The NullChannel is the /dev/null of Channels.

### class NullIOS

The base class for NullInputStream and NullOutputStream.

### class NullInputStream

Any read operation from this stream immediately yields EOF.

### class NullMutex

A NullMutex is an empty mutex implementation which performs no locking at all.

### class NullOutputStream

This stream discards all characters written to it.

### class NullPointerException

### class NullStreamBuf

This stream buffer discards all characters written to it.

### struct NullTypeList

### class NullValueException

### class Nullable

Nullable is a simple wrapper class for value types that allows objects or native type variables to have "null" value.

### class NumberFormatter

The NumberFormatter class provides static methods for formatting numeric values into strings.

### class NumberParser

The NumberParser class provides static methods for parsing numbers out of strings.

### class ObjectPool

An ObjectPool manages a pool of objects of a certain class.

### class Observer

This template class implements an adapter that sits between a NotificationCenter and an object receiving notifications from it.

### class OpcomChannel

A OpenVMS-only channel that uses the OpenVMS OPCOM service.

### class OpenFileException

### class Optional

Optional is a simple wrapper class for value types that allows to introduce a specified/unspecified state to value objects.

### class OutOfMemoryException

### class OutputLineEndingConverter

OutputLineEndingConverter performs line ending conversion on text output streams.

### class OutputStreamConverter

This stream converts all characters written to the underlying ostream from one character encoding into another.

### class PBKDF2Engine

This class implementes the Password-Based Key Derivation Function 2, as specified in RFC 2898.

### class Path

This class represents filesystem paths in a platform-independent manner.

### class PathNotFoundException

### class PathSyntaxException

### class PatternFormatter

This Formatter allows for custom formatting of log messages based on format patterns.

### class Pipe

This class implements an anonymous pipe.

### class PipeIOS

The base class for PipeInputStream and PipeOutputStream.

### class PipeInputStream

An input stream for reading from a Pipe.

### class PipeOutputStream

An output stream for writing to a Pipe.

### class PipeStreamBuf

This is the streambuf class used for reading from and writing to a Pipe.

### struct Placeholder

ValueHolder union (used by Poco::Any and Poco::Dynamic::Var for small object optimization, when enabled).

### class PoolOverflowException

### class PoolableObjectFactory

A PoolableObjectFactory is responsible for creating and resetting objects managed by an ObjectPool.

### class PriorityDelegate

### class PriorityEvent

A PriorityEvent uses internally a PriorityStrategy which invokes delegates in order of priority (lower priorities first).

### class PriorityExpire

Decorator for AbstractPriorityDelegate adding automatic expiring of registrations to AbstractPriorityDelegate.

### class PriorityNotificationQueue

A PriorityNotificationQueue object provides a way to implement asynchronous notifications.

### class PriorityStrategy

NotificationStrategy for PriorityEvent.

### class Process

This class provides methods for working with processes.

### class ProcessHandle

A handle for a process created with Process::launch().

### class PropertyNotSupportedException

### class ProtocolException

### class PurgeByAgeStrategy

This purge strategy purges all files that have exceeded a given age (given in seconds).

### class PurgeByCountStrategy

This purge strategy ensures that a maximum number of archived files is not exceeded.

### class PurgeStrategy

The PurgeStrategy is used by FileChannel to purge archived log files.

### class RWLock

A reader writer lock allows multiple concurrent readers or one exclusive writer.

### class Random

A better random number generator.

### class RandomBuf

This streambuf generates random data.

### class RandomIOS

The base class for RandomInputStream.

### class RandomInputStream

This istream generates random data using the RandomBuf.

### class RangeException

### class ReadFileException

### class RecursiveDirectoryIterator

The RecursiveDirectoryIterator class is used to enumerate all files in a directory and its subdirectories.

### class RecursiveDirectoryIteratorImpl

### class RefCountedObject

A base class for objects that employ reference counting based garbage collection.

### class ReferenceCounter

Simple ReferenceCounter object, does not delete itself when count reaches 0.

### class RegularExpression

A class for working with regular expressions.

### class RegularExpressionException

### class ReleaseArrayPolicy

The release policy for SharedPtr holding arrays.

### class ReleasePolicy

The default release policy for SharedPtr, which simply uses the delete operator to delete an object.

### class RotateAtTimeStrategy

The file is rotated at specified [day,][hour]:minute

### class RotateByIntervalStrategy

The file is rotated when the log file exceeds a given age.

### class RotateBySizeStrategy

The file is rotated when the log file exceeds a given size.

### class RotateStrategy

The RotateStrategy is used by LogFile to determine when a file must be rotated.

### class Runnable

The Runnable interface with the run() method must be implemented by classes that provide an entry point for a thread.

### class RunnableAdapter

This adapter simplifies using ordinary methods as targets for threads.

### class RuntimeException

### class SHA1Engine

This class implementes the SHA-1 message digest algorithm.

### class ScopedLock

A class that simplifies thread synchronization with a mutex.

### class ScopedLockWithUnlock

A class that simplifies thread synchronization with a mutex.

### class ScopedRWLock

A variant of ScopedLock for reader/writer locks.

### class ScopedReadRWLock

A variant of ScopedLock for reader locks.

### class ScopedUnlock

A class that simplifies thread synchronization with a mutex.

### class ScopedWriteRWLock

A variant of ScopedLock for writer locks.

### class Semaphore

A Semaphore is a synchronization object with the following characteristics: A semaphore has a value that is constrained to be a non-negative integer and two atomic operations.

### class SharedLibrary

The SharedLibrary class dynamically loads shared libraries at run-time.

### class SharedMemory

Create and manage a shared memory object.

### class SharedPtr

SharedPtr is a "smart" pointer for classes implementing reference counting based garbage collection.

### class SiblingsFirstTraverse

### class SignalException

### class SignalHandler

This helper class simplifies the handling of POSIX signals.

### class SimpleFileChannel

A Channel that writes to a file.

### class SimpleHashTable

A SimpleHashTable stores a key value pair that can be looked up via a hashed key.

### class SingletonHolder

This is a helper template class for managing singleton objects allocated on the heap.

### class SortedDirectoryIterator

The SortedDirectoryIterator class is similar to DirectoryIterator class, but places directories before files and sorts content alphabetically.

### class SplitterChannel

This channel sends a message to multiple channels simultaneously.

### class Stopwatch

A simple facility to measure time intervals with microsecond resolution.

### class StrategyCollection

An StrategyCollection is a decorator masking n collections as a single one.

### class StreamChannel

A channel that writes to an ostream.

### class StreamConverterBuf

A StreamConverter converts streams from one encoding (inEncoding) into another (outEncoding).

### class StreamConverterIOS

The base class for InputStreamConverter and OutputStreamConverter.

### class StreamCopier

This class provides static methods to copy the contents from one stream into another.

### class StreamTokenizer

A stream tokenizer splits an input stream into a sequence of tokens of different kinds.

### class StringTokenizer

A simple tokenizer that splits a string into tokens, which are separated by separator characters.

### class SynchronizedObject

This class aggregates a Mutex and an Event and can act as a base class for all objects requiring synchronization in a multithreaded scenario.

### class SyntaxException

### class SyslogChannel

This Unix-only channel works with the Unix syslog service.

### class SystemException

### class TLSAbstractSlot

This is the base class for all objects that the ThreadLocalStorage class manages.

### class TLSSlot

The Slot template wraps another class so that it can be stored in a ThreadLocalStorage object.

### class Task

A Task is a subclass of Runnable that has a name and supports progress reporting and cancellation.

### class TaskCancelledNotification

This notification is posted by the TaskManager for every task that has been cancelled.

### class TaskCustomNotification

This is a template for "custom" notification.

### class TaskFailedNotification

This notification is posted by the TaskManager for every task that has failed with an exception.

### class TaskFinishedNotification

This notification is posted by the TaskManager for every task that has finished.

### class TaskManager

The TaskManager manages a collection of tasks and monitors their lifetime.

### class TaskNotification

Base class for TaskManager notifications.

### class TaskProgressNotification

This notification is posted by the TaskManager for every task that has failed with an exception.

### class TaskStartedNotification

This notification is posted by the TaskManager for every task that has been started.

### class TeeIOS

The base class for TeeInputStream and TeeOutputStream.

### class TeeInputStream

This stream copies all characters read through it to one or multiple output streams.

### class TeeOutputStream

This stream copies all characters written to it to one or multiple output streams.

### class TeeStreamBuf

This stream buffer copies all data written to or read from it to one or multiple output streams.

### class TemporaryFile

The TemporaryFile class helps with the handling of temporary files.

### class TextBufferIterator

An unidirectional iterator for iterating over characters in a buffer.

### class TextConverter

A TextConverter converts strings from one encoding into another.

### class TextEncoding

An abstract base class for implementing text encodings like UTF-8 or ISO 8859-1.

### class TextIterator

An unidirectional iterator for iterating over characters in a string.

### class Thread

This class implements a platform-independent wrapper to an operating system thread.

### class ThreadLocal

This template is used to declare type safe thread local variables.

### class ThreadLocalStorage

This class manages the local storage for each thread.

### class ThreadPool

A thread pool always keeps a number of threads running, ready to accept work.

### class ThreadTarget

This adapter simplifies using static member functions as well as standalone functions as targets for threads.

### class TimedNotificationQueue

A TimedNotificationQueue object provides a way to implement timed, asynchronous notifications.

### class TimeoutException

### class Timer

This class implements a thread-based timer.

### class TimerCallback

This template class implements an adapter that sits between a Timer and an object's method invoked by the timer.

### class Timespan

A class that represents time spans up to microsecond resolution.

### class Timestamp

A Timestamp stores a monotonic* time value with (theoretical) microseconds resolution.

### class Timezone

This class provides information about the current timezone.

### class Token

The base class for all token classes that can be registered with the StreamTokenizer.

### class TraverseBase

### struct Tuple

### struct TypeList

Compile Time List of Types

### struct TypeListType

TypeListType takes 1 - 20 typename arguments.

### struct TypeWrapper

Specialization for const char arrays Use the type wrapper if you want to decouple constness and references from template types.

### class URI

A Uniform Resource Identifier, as specified in RFC 3986.

### class URIRedirection

An instance of URIRedirection is thrown by a URIStreamFactory::open() if opening the original URI resulted in a redirection response (such as a MOVED PERMANENTLY in HTTP).

### class URIStreamFactory

This class defines the interface that all URI stream factories must implement.

### class URIStreamOpener

The URIStreamOpener class is used to create and open input streams for resourced identified by Uniform Resource Identifiers.

### struct UTF16CharTraits

### class UTF16Encoding

UTF-16 text encoding, as defined in RFC 2781.

### struct UTF32CharTraits

### class UTF32Encoding

UTF-32 text encoding, as defined in RFC 2781.

### struct UTF8

This class provides static methods that are UTF-8 capable variants of the same functions in Poco/String.

### class UTF8Encoding

UTF-8 text encoding, as defined in RFC 2279.

### class UUID

A UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs.

### class UUIDGenerator

This class implements a generator for Universal Unique Identifiers, as specified in Appendix A of the DCE 1.

### class UnhandledException

### class Unicode

This class contains enumerations and static utility functions for dealing with Unicode characters and their properties.

### class UnicodeConverter

A convenience class that converts strings from UTF-8 encoded std::strings to UTF-16 or UTF-32 encoded std::wstrings and vice-versa.

### class UniqueAccessExpireCache

An UniqueAccessExpireCache caches entries for a given time span.

### class UniqueAccessExpireLRUCache

A UniqueAccessExpireLRUCache combines LRU caching and time based per entry expire caching.

### class UniqueAccessExpireStrategy

An UniqueExpireStrategy implements time based expiration of cache entries.

### class UniqueExpireCache

An UniqueExpireCache caches entries for a given time amount.

### class UniqueExpireLRUCache

A UniqueExpireLRUCache combines LRU caching and time based per entry expire caching.

### class UniqueExpireStrategy

An UniqueExpireStrategy implements time based expiration of cache entries.

### class UnknownURISchemeException

### class ValidArgs

### class Void

A dummy class with value-type semantics, mostly useful as a template argument.

### class WhitespaceToken

This pseudo token class is used to eat up whitespace in between real tokens.

### class Windows1250Encoding

Windows Codepage 1250 text encoding.

### class Windows1251Encoding

Windows Codepage 1251 text encoding.

### class Windows1252Encoding

Windows Codepage 1252 text encoding.

### class WindowsColorConsoleChannel

A channel that writes to the Windows console.

### class WindowsConsoleChannel

A channel that writes to the Windows console.

### class WriteFileException

### struct i_char_traits

## Types

### BufferedBidirectionalStreamBuf

typedef BasicBufferedBidirectionalStreamBuf < char, std::char_traits < char > > BufferedBidirectionalStreamBuf;

### BufferedStreamBuf

typedef BasicBufferedStreamBuf < char, std::char_traits < char > > BufferedStreamBuf;

### DynamicAny

typedef Dynamic::Var DynamicAny;

### DynamicStruct

typedef Dynamic::Struct < std::string > DynamicStruct;

### FIFOBuffer

typedef BasicFIFOBuffer < char > FIFOBuffer;

### FPE

typedef FPEnvironment FPE;

### Int16

typedef signed short Int16;

### Int32

typedef signed int Int32;

### Int64

typedef signed long Int64;

### Int8

typedef signed char Int8;

### IntPtr

typedef signed long IntPtr;

### MemoryBinaryReader

typedef BasicMemoryBinaryReader < char > MemoryBinaryReader;

### MemoryBinaryWriter

typedef BasicMemoryBinaryWriter < char > MemoryBinaryWriter;

### MemoryStreamBuf

typedef BasicMemoryStreamBuf < char, std::char_traits < char > > MemoryStreamBuf;

### NDC

typedef NestedDiagnosticContext NDC;

### SiblingsFirstRecursiveDirectoryIterator

typedef RecursiveDirectoryIterator < SiblingsFirstTraverse > SiblingsFirstRecursiveDirectoryIterator;

### SimpleRecursiveDirectoryIterator

typedef RecursiveDirectoryIterator < ChildrenFirstTraverse > SimpleRecursiveDirectoryIterator;

### UInt16

typedef unsigned short UInt16;

### UInt32

typedef unsigned int UInt32;

### UInt64

typedef unsigned long UInt64;

### UInt8

typedef unsigned char UInt8;

### UIntPtr

typedef unsigned long UIntPtr;

### UTF16Char

typedef Poco::UInt16 UTF16Char;

### UTF16String

typedef std::basic_string < UTF16Char, UTF16CharTraits > UTF16String;

### UTF32Char

typedef wchar_t UTF32Char;

### UTF32String

typedef std::wstring UTF32String;

### UnbufferedStreamBuf

typedef BasicUnbufferedStreamBuf < char, std::char_traits < char > > UnbufferedStreamBuf;

### istring

typedef std::basic_string < char, i_char_traits < char > > istring;

Case-insensitive std::string counterpart.

## Enumerations

### NullType

NULL_GENERIC = 0

## Functions

### AnyCast

template < typename ValueType > ValueType * AnyCast(
Any * operand
);

AnyCast operator used to extract the ValueType from an Any*. Will return a pointer to the stored value.

Example Usage: MyType* pTmp = AnyCast<MyType(pAny). Will return NULL if the cast fails, i.e. types don't match.

### AnyCast

template < typename ValueType > const ValueType * AnyCast(
const Any * operand
);

AnyCast operator used to extract a const ValueType pointer from an const Any*. Will return a const pointer to the stored value.

Example Usage: const MyType* pTmp = AnyCast<MyType(pAny). Will return NULL if the cast fails, i.e. types don't match.

### AnyCast

template < typename ValueType > ValueType AnyCast(
Any & operand
);

AnyCast operator used to extract a copy of the ValueType from an Any&.

Example Usage: MyType tmp = AnyCast<MyType>(anAny). Will throw a BadCastException if the cast fails. Dont use an AnyCast in combination with references, i.e. MyType& tmp = ... or const MyType& tmp = ... Some compilers will accept this code although a copy is returned. Use the RefAnyCast in these cases.

### AnyCast

template < typename ValueType > ValueType AnyCast(
const Any & operand
);

AnyCast operator used to extract a copy of the ValueType from an const Any&.

Example Usage: MyType tmp = AnyCast<MyType>(anAny). Will throw a BadCastException if the cast fails. Dont use an AnyCast in combination with references, i.e. MyType& tmp = ... or const MyType& = ... Some compilers will accept this code although a copy is returned. Use the RefAnyCast in these cases.

### RefAnyCast

template < typename ValueType > const ValueType & RefAnyCast(
const Any & operand
);

AnyCast operator used to return a const reference to the internal data.

Example Usage: const MyType& tmp = RefAnyCast<MyType>(anAny);

### RefAnyCast

template < typename ValueType > ValueType & RefAnyCast(
Any & operand
);

AnyCast operator used to return a reference to the internal data.

Example Usage: MyType& tmp = RefAnyCast<MyType>(anAny);

### UnsafeAnyCast

template < typename ValueType > ValueType * UnsafeAnyCast(
Any * operand
);

The "unsafe" versions of AnyCast are not part of the public interface and may be removed at any time. They are required where we know what type is stored in the any and can't use typeid() comparison, e.g., when our types may travel across different shared libraries.

### UnsafeAnyCast

template < typename ValueType > const ValueType * UnsafeAnyCast(
const Any * operand
);

The "unsafe" versions of AnyCast are not part of the public interface and may be removed at any time. They are required where we know what type is stored in the any and can't use typeid() comparison, e.g., when our types may travel across different shared libraries.

### alignOf

template < typename T > inline unsigned alignOf();

A templated function that returns the minimum alignment of of a type. This provides no extra functionality beyond the AlignOf class besides some cosmetic cleanliness. Example usage: alignOf<int>() returns the alignment of an int.

### cat

template < class S > S cat(
const S & s1,
const S & s2
);

Concatenates two strings.

### cat

template < class S > S cat(
const S & s1,
const S & s2,
const S & s3
);

Concatenates three strings.

### cat

template < class S > S cat(
const S & s1,
const S & s2,
const S & s3,
const S & s4
);

Concatenates four strings.

### cat

template < class S > S cat(
const S & s1,
const S & s2,
const S & s3,
const S & s4,
const S & s5
);

Concatenates five strings.

### cat

template < class S > S cat(
const S & s1,
const S & s2,
const S & s3,
const S & s4,
const S & s5,
const S & s6
);

Concatenates six strings.

### cat

template < class S, class It > S cat(
const S & delim,
const It & begin,
const It & end
);

Concatenates a sequence of strings, delimited by the string given in delim.

### decimalSeparator

inline char decimalSeparator();

Returns decimal separator from global locale or default '.' for platforms where locale is unavailable.

### delegate

template < class TObj, class TArgs > inline Delegate < TObj, TArgs, true > delegate(
TObj * pObj,
void (TObj::* NotifyMethod)(const void *, TArgs &) param132
);

### delegate

template < class TObj, class TArgs > inline Delegate < TObj, TArgs, false > delegate(
TObj * pObj,
void (TObj::* NotifyMethod)(TArgs &) param133
);

### delegate

template < class TObj, class TArgs > inline Expire < TArgs > delegate(
TObj * pObj,
void (TObj::* NotifyMethod)(const void *, TArgs &) param134,
Timestamp::TimeDiff expireMillisecs
);

### delegate

template < class TObj, class TArgs > inline Expire < TArgs > delegate(
TObj * pObj,
void (TObj::* NotifyMethod)(TArgs &) param135,
Timestamp::TimeDiff expireMillisecs
);

### delegate

template < class TArgs > inline Expire < TArgs > delegate(
void (* NotifyMethod)(const void *, TArgs &) param136,
Timestamp::TimeDiff expireMillisecs
);

### delegate

template < class TArgs > inline Expire < TArgs > delegate(
void (* NotifyMethod)(void *, TArgs &) param137,
Timestamp::TimeDiff expireMillisecs
);

### delegate

template < class TArgs > inline Expire < TArgs > delegate(
void (* NotifyMethod)(TArgs &) param138,
Timestamp::TimeDiff expireMillisecs
);

### delegate

template < class TArgs > inline FunctionDelegate < TArgs, true, true > delegate(
void (* NotifyMethod)(const void *, TArgs &) param139
);

### delegate

template < class TArgs > inline FunctionDelegate < TArgs, true, false > delegate(
void (* NotifyMethod)(void *, TArgs &) param140
);

### delegate

template < class TArgs > inline FunctionDelegate < TArgs, false > delegate(
void (* NotifyMethod)(TArgs &) param141
);

### delegate

template < class TObj > inline Delegate < TObj, void, true > delegate(
TObj * pObj,
void (TObj::* NotifyMethod)(const void *) param142
);

### delegate

template < class TObj > inline Delegate < TObj, void, false > delegate(
TObj * pObj,
void (TObj::* NotifyMethod)()
);

### delegate

template < class TObj > inline Expire < void > delegate(
TObj * pObj,
void (TObj::* NotifyMethod)(const void *) param143,
Timestamp::TimeDiff expireMillisecs
);

### delegate

template < class TObj > inline Expire < void > delegate(
TObj * pObj,
void (TObj::* NotifyMethod)(),
Timestamp::TimeDiff expireMillisecs
);

### delegate

inline Expire < void > delegate(
void (* NotifyMethod)(const void *) param144,
Timestamp::TimeDiff expireMillisecs
);

### delegate

inline Expire < void > delegate(
void (* NotifyMethod)(void *) param145,
Timestamp::TimeDiff expireMillisecs
);

### delegate

inline Expire < void > delegate(
void (* NotifyMethod)(),
Timestamp::TimeDiff expireMillisecs
);

### delegate

inline FunctionDelegate < void, true, true > delegate(
void (* NotifyMethod)(const void *) param146
);

### delegate

inline FunctionDelegate < void, true, false > delegate(
void (* NotifyMethod)(void *) param147
);

### delegate

inline FunctionDelegate < void, false > delegate(
void (* NotifyMethod)()
);

### doubleToStr

void doubleToStr(
char * buffer,
int bufferSize,
double value,
int lowDec = - std::numeric_limits < double >::digits10,
int highDec = std::numeric_limits < double >::digits10
);

Converts a double value to string. Converted string must be shorter than bufferSize. Conversion is done by computing the shortest string of digits that correctly represents the input number. Depending on lowDec and highDec values, the function returns decimal or exponential representation.

### doubleToStr

std::string & doubleToStr(
std::string & str,
double value,
int precision = - 1,
int width = 0,
char thSep = 0,
char decSep = 0
);

Converts a double value, assigns it to the supplied string and returns the reference. This function calls doubleToStr(char*, int, float, int, int) and formats the result according to precision (total number of digits after the decimal point, -1 means ignore precision argument) and width (total length of formatted string).

### floatToStr

void floatToStr(
char * buffer,
int bufferSize,
float value,
int lowDec = - std::numeric_limits < double >::digits10,
int highDec = std::numeric_limits < double >::digits10
);

Converts a float value to string. Converted string must be shorter than bufferSize. Conversion is done by computing the shortest string of digits that correctly represents the input number. Depending on lowDec and highDec values, the function returns decimal or exponential representation.

### floatToStr

std::string & floatToStr(
std::string & str,
float value,
int precision = - 1,
int width = 0,
char thSep = 0,
char decSep = 0
);

Converts a float value, assigns it to the supplied string and returns the reference. This function calls floatToStr(char*, int, float, int, int) and formats the result according to precision (total number of digits after the decimal point, -1 means ignore precision argument) and width (total length of formatted string).

### format

std::string format(
const std::string & fmt,
const Any & value
);

This function implements sprintf-style formatting in a typesafe way. Various variants of the function are available, supporting a different number of arguments (up to six).

The formatting is controlled by the format string in fmt. Format strings are quite similar to those of the std::printf() function, but there are some minor differences.

The format string can consist of any sequence of characters; certain characters have a special meaning. Characters without a special meaning are copied verbatim to the result. A percent sign (%) marks the beginning of a format specification. Format specifications have the following syntax:

    %[<index>][<flags>][<width>][.<precision>][<modifier>]<type>

Index, flags, width, precision and prefix are optional. The only required part of the format specification, apart from the percent sign, is the type.

The optional index argument has the format "[<n>]" and allows to address an argument by its zero-based position (see the example below).

Following are valid type specifications and their meaning:

- b boolean (true = 1, false = 0)
- c character
- d signed decimal integer
- i signed decimal integer
- o unsigned octal integer
- u unsigned decimal integer
- x unsigned hexadecimal integer (lower case)
- X unsigned hexadecimal integer (upper case)
- e signed floating-point value in the form [-]d.dddde[<sign>]dd[d]
- E signed floating-point value in the form [-]d.ddddE[<sign>]dd[d]
- f signed floating-point value in the form [-]dddd.dddd
- s std::string
- z std::size_t

The following flags are supported:

- - left align the result within the given field width
- + prefix the output value with a sign (+ or -) if the output value is of a signed type
- 0 if width is prefixed with 0, zeros are added until the minimum width is reached
- # For o, x, X, the # flag prefixes any nonzero output value with 0, 0x, or 0X, respectively; for e, E, f, the # flag forces the output value to contain a decimal point in all cases.

The following modifiers are supported:

- (none) argument is char (c), int (d, i), unsigned (o, u, x, X) double (e, E, f, g, G) or string (s)
- l argument is long (d, i), unsigned long (o, u, x, X) or long double (e, E, f, g, G)
- L argument is long long (d, i), unsigned long long (o, u, x, X)
- h argument is short (d, i), unsigned short (o, u, x, X) or float (e, E, f, g, G)
- ? argument is any signed or unsigned int, short, long, or 64-bit integer (d, i, o, x, X)

The width argument is a nonnegative decimal integer controlling the minimum number of characters printed. If the number of characters in the output value is less than the specified width, blanks or leading zeros are added, according to the specified flags (-, +, 0).

Precision is a nonnegative decimal integer, preceded by a period (.), which specifies the number of characters to be printed, the number of decimal places, or the number of significant digits.

Throws an InvalidArgumentException if an argument index is out of range.

Starting with release 1.4.3, an argument that does not match the format specifier no longer results in a BadCastException. The string [ERRFMT] is written to the result string instead.

If there are more format specifiers than values, the format specifiers without a corresponding value are copied verbatim to output.

If there are more values than format specifiers, the superfluous values are ignored.

Usage Examples:

    std::string s1 = format("The answer to life, the universe, and everything is %d", 42);
    std::string s2 = format("second: %[1]d, first: %[0]d", 1, 2);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2
);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3
);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4
);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5
);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6
);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6,
const Any & value7
);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6,
const Any & value7,
const Any & value8
);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6,
const Any & value7,
const Any & value8,
const Any & value9
);

### format

std::string format(
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6,
const Any & value7,
const Any & value8,
const Any & value9,
const Any & value10
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value
);

Appends the formatted string to result.

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6,
const Any & value7
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6,
const Any & value7,
const Any & value8
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6,
const Any & value7,
const Any & value8,
const Any & value9
);

### format

void format(
std::string & result,
const std::string & fmt,
const Any & value1,
const Any & value2,
const Any & value3,
const Any & value4,
const Any & value5,
const Any & value6,
const Any & value7,
const Any & value8,
const Any & value9,
const Any & value10
);

### format

void format(
std::string & result,
const std::string & fmt,
const std::vector < Any > & values
);

Supports a variable number of arguments and is used by all other variants of format().

### hash

std::size_t hash(
Int8 n
);

### hash

std::size_t hash(
UInt8 n
);

### hash

std::size_t hash(
Int16 n
);

### hash

std::size_t hash(
UInt16 n
);

### hash

std::size_t hash(
Int32 n
);

### hash

std::size_t hash(
UInt32 n
);

### hash

std::size_t hash(
Int64 n
);

### hash

std::size_t hash(
UInt64 n
);

### hash

std::size_t hash(
const std::string & str
);

### hash

inline std::size_t hash(
Int8 n
);

### hash

inline std::size_t hash(
UInt8 n
);

### hash

inline std::size_t hash(
Int16 n
);

### hash

inline std::size_t hash(
UInt16 n
);

### hash

inline std::size_t hash(
Int32 n
);

### hash

inline std::size_t hash(
UInt32 n
);

### hash

inline std::size_t hash(
Int64 n
);

### hash

inline std::size_t hash(
UInt64 n
);

### icompare

template < class S, class It > int icompare(
const S & str,
typename S::size_type pos,
typename S::size_type n,
It it2,
It end2
);

Case-insensitive string comparison

### icompare

template < class S > int icompare(
const S & str1,
const S & str2
);

### icompare

template < class S > int icompare(
const S & str1,
typename S::size_type n1,
const S & str2,
typename S::size_type n2
);

### icompare

template < class S > int icompare(
const S & str1,
typename S::size_type n,
const S & str2
);

### icompare

template < class S > int icompare(
const S & str1,
typename S::size_type pos,
typename S::size_type n,
const S & str2
);

### icompare

template < class S > int icompare(
const S & str1,
typename S::size_type pos1,
typename S::size_type n1,
const S & str2,
typename S::size_type pos2,
typename S::size_type n2
);

### icompare

template < class S > int icompare(
const S & str1,
typename S::size_type pos1,
typename S::size_type n,
const S & str2,
typename S::size_type pos2
);

### icompare

template < class S > int icompare(
const S & str,
typename S::size_type pos,
typename S::size_type n,
const typename S::value_type * ptr
);

### icompare

template < class S > int icompare(
const S & str,
typename S::size_type pos,
const typename S::value_type * ptr
);

### icompare

template < class S > int icompare(
const S & str,
const typename S::value_type * ptr
);

### intToStr

template < typename T > bool intToStr(
T value,
unsigned short base,
char * result,
std::size_t & size,
bool prefix = false,
int width = - 1,
char fill = ' ',
char thSep = 0
);

Converts integer to string. Numeric bases from binary to hexadecimal are supported. If width is non-zero, it pads the return value with fill character to the specified width. When padding is zero character ('0'), it is prepended to the number itself; all other paddings are prepended to the formatted result with minus sign or base prefix included If prefix is true and base is octal or hexadecimal, respective prefix ('0' for octal, "0x" for hexadecimal) is prepended. For all other bases, prefix argument is ignored. Formatted string has at least [width] total length.

### intToStr

template < typename T > bool intToStr(
T number,
unsigned short base,
std::string & result,
bool prefix = false,
int width = - 1,
char fill = ' ',
char thSep = 0
);

Converts integer to string; This is a wrapper function, for details see see the bool intToStr(T, unsigned short, char*, int, int, char, char) implementation.

### isubstr

template < typename T > std::size_t isubstr(
const T & str,
const T & sought
);

Case-insensitive substring; searches for a substring without regards to case.

### operator !=

template < class T, std::size_t N > bool operator != (
const Array < T, N > & x,
const Array < T, N > & y
);

### operator !=

template < typename C > bool operator != (
const C & c,
const Nullable < C > & n
);

Compares Nullable with value for non equality

### operator !=

template < typename C > bool operator != (
const NullType & param209,
const Nullable < C > & n
);

Returns true if this Nullable is not null.

### operator !=

template < class T1, class T2 > inline bool operator != (
const RecursiveDirectoryIterator < T1 > & a,
const RecursiveDirectoryIterator < T2 > & b
);

### operator <

template < class T, std::size_t N > bool operator < (
const Array < T, N > & x,
const Array < T, N > & y
);

### operator <<

template < typename C > std::ostream & operator << (
std::ostream & out,
const Nullable < C > & obj
);

### operator <=

template < class T, std::size_t N > bool operator <= (
const Array < T, N > & x,
const Array < T, N > & y
);

### operator ==

template < class T, std::size_t N > bool operator == (
const Array < T, N > & x,
const Array < T, N > & y
);

### operator ==

template < typename C > bool operator == (
const NullType & param208,
const Nullable < C > & n
);

Returns true if this Nullable is null.

### operator ==

template < typename C > bool operator == (
const C & c,
const Nullable < C > & n
);

Compares Nullable with NullData for equality

### operator ==

template < class T1, class T2 > inline bool operator == (
const RecursiveDirectoryIterator < T1 > & a,
const RecursiveDirectoryIterator < T2 > & b
);

### operator >

template < class T, std::size_t N > bool operator > (
const Array < T, N > & x,
const Array < T, N > & y
);

### operator >=

template < class T, std::size_t N > bool operator >= (
const Array < T, N > & x,
const Array < T, N > & y
);

### operator []

inline std::string & StringTokenizer::operator[] (
std::size_t index
);

### operator []

inline const std::string & StringTokenizer::operator[] (
std::size_t index
) const;

### priorityDelegate

template < class TObj, class TArgs > static PriorityDelegate < TObj, TArgs, true > priorityDelegate(
TObj * pObj,
void (TObj::* NotifyMethod)(const void *, TArgs &) param215,
int prio
);

### priorityDelegate

template < class TObj, class TArgs > static PriorityDelegate < TObj, TArgs, false > priorityDelegate(
TObj * pObj,
void (TObj::* NotifyMethod)(TArgs &) param216,
int prio
);

### priorityDelegate

template < class TObj, class TArgs > static PriorityExpire < TArgs > priorityDelegate(
TObj * pObj,
void (TObj::* NotifyMethod)(const void *, TArgs &) param217,
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

template < class TObj, class TArgs > static PriorityExpire < TArgs > priorityDelegate(
TObj * pObj,
void (TObj::* NotifyMethod)(TArgs &) param218,
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

template < class TArgs > static PriorityExpire < TArgs > priorityDelegate(
void (* NotifyMethod)(const void *, TArgs &) param219,
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

template < class TArgs > static PriorityExpire < TArgs > priorityDelegate(
void (* NotifyMethod)(void *, TArgs &) param220,
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

template < class TArgs > static PriorityExpire < TArgs > priorityDelegate(
void (* NotifyMethod)(TArgs &) param221,
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

template < class TArgs > static FunctionPriorityDelegate < TArgs, true, true > priorityDelegate(
void (* NotifyMethod)(const void *, TArgs &) param222,
int prio
);

### priorityDelegate

template < class TArgs > static FunctionPriorityDelegate < TArgs, true, false > priorityDelegate(
void (* NotifyMethod)(void *, TArgs &) param223,
int prio
);

### priorityDelegate

template < class TArgs > static FunctionPriorityDelegate < TArgs, false > priorityDelegate(
void (* NotifyMethod)(TArgs &) param224,
int prio
);

### priorityDelegate

template < class TObj > static PriorityDelegate < TObj, void, true > priorityDelegate(
TObj * pObj,
void (TObj::* NotifyMethod)(const void *) param225,
int prio
);

### priorityDelegate

template < class TObj > static PriorityDelegate < TObj, void, false > priorityDelegate(
TObj * pObj,
void (TObj::* NotifyMethod)(),
int prio
);

### priorityDelegate

template < class TObj > static PriorityExpire < void > priorityDelegate(
TObj * pObj,
void (TObj::* NotifyMethod)(const void *) param226,
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

template < class TObj > static PriorityExpire < void > priorityDelegate(
TObj * pObj,
void (TObj::* NotifyMethod)(),
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

inline PriorityExpire < void > priorityDelegate(
void (* NotifyMethod)(const void *) param227,
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

inline PriorityExpire < void > priorityDelegate(
void (* NotifyMethod)(void *) param228,
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

inline PriorityExpire < void > priorityDelegate(
void (* NotifyMethod)(),
int prio,
Timestamp::TimeDiff expireMilliSec
);

### priorityDelegate

inline FunctionPriorityDelegate < void, true, true > priorityDelegate(
void (* NotifyMethod)(const void *) param229,
int prio
);

### priorityDelegate

inline FunctionPriorityDelegate < void, true, false > priorityDelegate(
void (* NotifyMethod)(void *) param230,
int prio
);

### priorityDelegate

inline FunctionPriorityDelegate < void, false > priorityDelegate(
void (* NotifyMethod)(),
int prio
);

### remove

template < class S > S remove(
const S & str,
const typename S::value_type ch,
typename S::size_type start = 0
);

### removeInPlace

template < class S > S & removeInPlace(
S & str,
const typename S::value_type ch,
typename S::size_type start = 0
);

### replace

template < class S > S replace(
const S & str,
const S & from,
const S & to,
typename S::size_type start = 0
);

Replace all occurences of from (which must not be the empty string) in str with to, starting at position start.

### replace

template < class S > S replace(
const S & str,
const typename S::value_type * from,
const typename S::value_type * to,
typename S::size_type start = 0
);

### replace

template < class S > S replace(
const S & str,
const typename S::value_type from,
const typename S::value_type to = 0,
typename S::size_type start = 0
);

### replaceInPlace

template < class S > S & replaceInPlace(
S & str,
const S & from,
const S & to,
typename S::size_type start = 0
);

### replaceInPlace

template < class S > S & replaceInPlace(
S & str,
const typename S::value_type * from,
const typename S::value_type * to,
typename S::size_type start = 0
);

### replaceInPlace

template < class S > S & replaceInPlace(
S & str,
const typename S::value_type from,
const typename S::value_type to = 0,
typename S::size_type start = 0
);

### strToDouble

double strToDouble(
const char * str
);

Converts the string of characters into double-precision floating point number.

### strToDouble

bool strToDouble(
const std::string & str,
double & result,
char decSep = '.',
char thSep = ','
);

Converts the string of characters into double-precision floating point number. The conversion result is assigned to the result parameter. If decimal separator and/or thousand separator are different from defaults, they should be supplied to ensure proper conversion.

Returns true if succesful, false otherwise.

### strToFloat

float strToFloat(
const char * str
);

Converts the string of characters into single-precision floating point number. Function uses double_convesrion::DoubleToStringConverter to do the conversion.

### strToFloat

bool strToFloat(
const std::string & param210,
float & result,
char decSep = '.',
char thSep = ','
);

Converts the string of characters into single-precision floating point number. The conversion result is assigned to the result parameter. If decimal separator and/or thousand separator are different from defaults, they should be supplied to ensure proper conversion.

Returns true if succesful, false otherwise.

### strToInt

template < typename I > bool strToInt(
const char * pStr,
I & result,
short base,
char thSep = ','
);

Converts zero-terminated character array to integer number; Thousand separators are recognized for base10 and current locale; it is silently skipped but not verified for correct positioning. Function returns true if succesful. If parsing was unsuccesful, the return value is false with the result value undetermined.

### strToInt

template < typename I > bool strToInt(
const std::string & str,
I & result,
short base,
char thSep = ','
);

Converts string to integer number; This is a wrapper function, for details see see the bool strToInt(const char*, I&, short, char) implementation.

### swap

template < class T, std::size_t N > inline void swap(
Array < T, N > & x,
Array < T, N > & y
);

global swap()

### swap

template < class C > inline void swap(
AutoPtr < C > & p1,
AutoPtr < C > & p2
);

### swap

inline void swap(
Clock & s1,
Clock & s2
);

### swap

inline void swap(
DateTime & d1,
DateTime & d2
);

### swap

inline void swap(
File & f1,
File & f2
);

### swap

inline void swap(
LocalDateTime & d1,
LocalDateTime & d2
);

### swap

inline void swap(
Message & m1,
Message & m2
);

### swap

template < typename C > inline void swap(
Nullable < C > & n1,
Nullable < C > & n2
);

### swap

template < typename C > inline void swap(
Optional < C > & n1,
Optional < C > & n2
);

### swap

inline void swap(
Path & p1,
Path & p2
);

### swap

template < class C, class RC, class RP > inline void swap(
SharedPtr < C, RC, RP > & p1,
SharedPtr < C, RC, RP > & p2
);

### swap

inline void swap(
TextBufferIterator & it1,
TextBufferIterator & it2
);

### swap

inline void swap(
TextIterator & it1,
TextIterator & it2
);

### swap

inline void swap(
Timespan & s1,
Timespan & s2
);

### swap

inline void swap(
Timestamp & s1,
Timestamp & s2
);

### swap

inline void swap(
URI & u1,
URI & u2
);

### swap

inline void swap(
UUID & u1,
UUID & u2
);

### thousandSeparator

inline char thousandSeparator();

Returns thousand separator from global locale or default ',' for platforms where locale is unavailable.

### toLower

template < class S > S toLower(
const S & str
);

Returns a copy of str containing all lower-case characters.

### toLowerInPlace

template < class S > S & toLowerInPlace(
S & str
);

Replaces all characters in str with their lower-case counterparts.

### toUpper

template < class S > S toUpper(
const S & str
);

Returns a copy of str containing all upper-case characters.

### toUpperInPlace

template < class S > S & toUpperInPlace(
S & str
);

Replaces all characters in str with their upper-case counterparts.

### translate

template < class S > S translate(
const S & str,
const S & from,
const S & to
);

Returns a copy of str with all characters in from replaced by the corresponding (by position) characters in to. If there is no corresponding character in to, the character is removed from the copy.

### translate

template < class S > S translate(
const S & str,
const typename S::value_type * from,
const typename S::value_type * to
);

### translateInPlace

template < class S > S & translateInPlace(
S & str,
const S & from,
const S & to
);

Replaces in str all occurences of characters in from with the corresponding (by position) characters in to. If there is no corresponding character, the character is removed.

### translateInPlace

template < class S > S translateInPlace(
S & str,
const typename S::value_type * from,
const typename S::value_type * to
);

### trim

template < class S > S trim(
const S & str
);

Returns a copy of str with all leading and trailing whitespace removed.

### trimInPlace

template < class S > S & trimInPlace(
S & str
);

Removes all leading and trailing whitespace in str.

### trimLeft

template < class S > S trimLeft(
const S & str
);

Returns a copy of str with all leading whitespace removed.

### trimLeftInPlace

template < class S > S & trimLeftInPlace(
S & str
);

Removes all leading whitespace in str.

### trimRight

template < class S > S trimRight(
const S & str
);

Returns a copy of str with all trailing whitespace removed.

### trimRightInPlace

template < class S > S & trimRightInPlace(
S & str
);

Removes all trailing whitespace in str.

### uIntToStr

template < typename T > bool uIntToStr(
T value,
unsigned short base,
char * result,
std::size_t & size,
bool prefix = false,
int width = - 1,
char fill = ' ',
char thSep = 0
);

Converts unsigned integer to string. Numeric bases from binary to hexadecimal are supported. If width is non-zero, it pads the return value with fill character to the specified width. When padding is zero character ('0'), it is prepended to the number itself; all other paddings are prepended to the formatted result with minus sign or base prefix included If prefix is true and base is octal or hexadecimal, respective prefix ('0' for octal, "0x" for hexadecimal) is prepended. For all other bases, prefix argument is ignored. Formatted string has at least [width] total length.

### uIntToStr

template < typename T > bool uIntToStr(
T number,
unsigned short base,
std::string & result,
bool prefix = false,
int width = - 1,
char fill = ' ',
char thSep = 0
);

Converts unsigned integer to string; This is a wrapper function, for details see see the bool uIntToStr(T, unsigned short, char*, int, int, char, char) implementation.