E-MailRelay

Namespace List
Here is a list of all documented namespaces with brief descriptions:
[detail level 1 2 3]

►N G | Low-level classes
N CodePage | Windows codepage conversion functions
N Idn | Internationalised Domain Name encoding
N Random | An enclosing namespace for G::Random::rand()
N Range | Utility functions for pair-of-integer ranges
►N Slot | A callback mechanism that isolates event sinks from event sources
C Binder | A functor class template that contains the target object pointer and method pointer, similar to c++20 bind_front(&T::fn,tp)
C Signal | A slot holder, with connect() and emit() methods
C Slot | A slot class template that is parameterised only on the target method's signature (with an implicit void return) and not on the target class
►N StringList | Utility functions for lists of strings
C Filter | Filters a list of strings with allow and deny lists
C Arg | A class which holds a represention of the argc/argv command line array, and supports simple command-line parsing
C Base64 | A base64 codec class
C basic_imembuf | An input streambuf that takes its data from a fixed-size const buffer
C basic_omembuf | An output streambuf that writes to a fixed-size char buffer
C BasicAddress | A structure that holds a network address as a string with no dependency on any low-level network library
C BatchFile | A class for reading and writing windows-style startup batch files containing a single command-line, optionally using "start"
C BrokenDownTime | An encapsulation of 'struct std::tm'
C Buffer | A substitute for std::vector<char> that has more useful alignment guarantees and explicitly avoids default initialisation of each element
C CallFrame | An object to represent a nested execution context
C CallStack | A linked list of CallFrame pointers
►C Cleanup | A static interface for registering cleanup functions that are called when the process terminates abnormally
C Arg | Opaque leaky string pointer wrapper created by G::Cleanup::arg()
C Block | A RAII class to temporarily block signal delivery
C Convert | A static class which provides string encoding conversion functions between UTF-8 and wchar_t
C Daemon | A static interface for daemonising the calling process
►C Date | A day-month-year date class
C LocalTime | An overload discriminator class for Date constructors
C DateTime | A static class that knows about timezone offsets
C Directory | An encapsulation of a file system directory that works with G::DirectoryIterator
C DirectoryIterator | A iterator that returns unsorted filenames in a directory
►C DirectoryList | A iterator similar to G::DirectoryIterator but doing all file i/o in one go and providing a sorted result
C Item | A directory-entry item for G::DirectoryList
C Environment | Holds a set of environment variables and also provides static methods to wrap getenv() and putenv()
C Exception | A general-purpose exception class derived from std::exception and containing an error message
C ExecutableCommand | A structure representing an external program, holding a path and a set of arguments
C fbuf | A simple file streambuf using a "file descriptor" and three function pointers for read, write and close operations
►C File | A simple static class for dealing with files
C Append | An overload discriminator for G::File::open()
C CreateExclusive | An overload discriminator for G::File::open()
C Stat | A portable 'struct stat'
C Text | An overload discriminator for G::File::open()
C format | A simple version of boost::format for formatting strings in an i18n-friendly way
C GetOpt | A command-line option parser
►C Hash | A class for creating HMACs using an arbitrary cryptographic hash function as per RFC-2104
C Masked | An overload discriminator for G::Hash::hmac()
C HashState | Functions for representing the intermediate state of a hash function as a non-printable string
C Identity | A combination of user-id and group-id, with a very low-level interface to the get/set/e/uid/gid functions
C Limits | A set of compile-time buffer sizes
C Limits< G::Scale::Normal > | Normal specialisation of G::Limits
C Limits< G::Scale::Small > | Small-memory specialisation of G::Limits
►C LogOutput | Controls and implements low-level logging output, as used by G::Log
C Config | A configuration structure for G::LogOutput
C Instance | A set of convenience functions for calling LogOutput methods on LogOutput::instance()
C LogStream | A non-throwing copyable wrapper for std::ostream, used by G::LogOutput and associated logging macros
►C MapFile | A class for reading, writing and editing key=value files, supporting variable expansion of percent-key-percent values, comments, creation of backup files, and logging
C Error | Exception class for G::MapFile
►C Md5 | MD5 message digest class
C digest_state | Holds the four parts of the md5 state
C digest_stream_state | Holds the md5 state plus unprocessed residual data
C Msg | Wrappers for sendmsg() and recvmsg()
►C NewProcess | A class for creating new processes
C Config | Configuration structure for G::NewProcess
C Fd | Wraps up a file descriptor for passing to G::NewProcess
C NewProcessWaitable | Holds the parameters and future results of a waitpid() system call
C Option | A structure representing a G::Options command-line option
C optional | A class template like a simplified c++17 std::optional
C OptionMap | A multimap-like container for command-line options and their values
C OptionParser | A parser for command-line arguments that operates according to an Options specification and returns an OptionValue multimap
C OptionReader | Provides a static function to read options from a config file
C Options | A class to assemble a list of command-line options and provide access by name
►C OptionsUsage | Provides help text for a set of options
C Config | A configuration structure for G::OptionsUsage
C OptionValue | A simple structure encapsulating the value of a command-line option
►C Pam | A thin interface to the system PAM library, with two pure virtual methods that derived classes should implement: the converse() method supplies passwords etc
C Error | An exception class for G::Pam
C Item | A structure used by G::Pam to hold conversation items
C Path | A Path object represents a file system path
C PidFile | A class for creating pid files
►C Process | A static interface for doing things with processes
C Id | Process-id class
C Umask | Used to temporarily modify the process umask
C ReadWrite | An abstract interface for reading and writing from a non-blocking i/o channel
C Root | A class which acquires the process's special privileges on construction and releases them on destruction
C ScopeExit | A class that calls an exit function at the end of its scope
C ScopeExitSet | A class that sets a simple variable to a particular value at the end of its scope
C SignalSafe | An empty structure that is used to indicate a signal-safe, reentrant implementation
C StateMachine | A finite state machine class template
►C Str | A static class which provides string helper functions
C Hex | Overload discrimiator for G::Str::toUWhatever() indicating hexadecimal strings
C Limited | Overload discrimiator for G::Str::toUWhatever() requesting a range-limited result
C string_view | A class like c++17's std::string_view
C StringFieldIteratorT | A standard forward iterator for G::StringFieldT:
C StringFieldT | A zero-copy string field iterator where the field separators are short fixed strings
C StringTokenT | A zero-copy string token iterator where the token separators are runs of whitespace characters, with no support for escape characters
C StringWrap | A word-wrap class
C SystemTime | Represents a unix-epoch time with microsecond resolution
C Test | A static interface for enabling test features at run-time
C threading | Helper class for std::thread capabilities
►C Time | A simple time-of-day (hh/mm/ss) class
C LocalTime | An overload discriminator class for Time constructors
C TimeInterval | An interval between two G::SystemTime values or two G::TimerTime values
C TimerTime | A monotonically increasing subsecond-resolution timestamp, notionally unrelated to time_t
C Xtext | An xtext codec class, encoding space as "+20" etc
►N GAuth | SASL authentication classes
C Cram | Implements the standard challenge-response authentication mechanism of RFC-2195
►C SaslClient | A class that implements the client-side SASL challenge/response concept
C Response | Result structure returned from GAuth::SaslClient::response
C SaslClientSecrets | An interface used by GAuth::SaslClient to obtain a client id and its authentication secret
C SaslServer | An interface for implementing the server-side SASL challenge/response concept
C SaslServerBasic | An implementation of the SaslServer interface that does not use PAM
C SaslServerFactory | Provides a factory function for SaslServer instances
C SaslServerPam | An implementation of the SaslServer interface using PAM as the authentication mechanism
C SaslServerSecrets | An interface used by GAuth::SaslServer to obtain authentication secrets
C Secret | Encapsulates a userid/shared-secret/hash-function tuple from the secrets file
C Secrets | Provides factory functions for client and server secrets objects
C SecretsFile | A class to read authentication secrets from file, used by GAuth::Secrets
C SecretsFileClient | A thin adapter between GAuth::SecretsFile and GAuth::SaslClientSecrets returned by GAuth::Secrets::newClientSecrets()
C SecretsFileServer | A thin adapter between GAuth::SecretsFile and GAuth::SaslServerSecrets returned by GAuth::Secrets::newServerSecrets()
►N GFilters | Message filter classes
C CopyFilter | A concrete GSmtp::Filter class that copies the message to all pre-existing sub-directories of the spool directory
C DeliveryFilter | A concrete GSmtp::Filter class that copies the message to multiple spool sub-directories according to the envelope recipient list
C ExecutableFilter | A Filter class that runs an external helper program
C FilterChain | A Filter class that runs a sequence of sub-filters
C FilterFactory | A FilterFactory implementation
C MessageIdFilter | A filter that adds a RFC-822 Message-ID to the message content if it does not have one already
C MxFilter | A concrete GSmtp::Filter class for message routing: if the message's 'forward-to' envelope field is set then the 'forward-to-address' field is populated with the result of a MX lookup
►C MxLookup | A DNS MX lookup client
C Config | A configuration structure for GFilters::MxLookup
C NetworkFilter | A Filter class that passes the name of a message file to a remote network server
C NullFilter | A Filter class that does nothing
C SimpleFilterBase | A GSmtp::Filter base class for filters that run synchronously
C SpamFilter | A Filter class that passes the body of a message file to a remote process over the network and optionally stores the response back into the file
C SplitFilter | A concrete GSmtp::Filter class for message routing: if the message has recipients for multiple domains then it is split up into a separate message for each domain, with the forward-to envelope field containing the domain name
►N GNet | Network classes
C AcceptInfo | A move-only class which is used to return a new()ed socket to calling code, together with associated address information
►C Address | The GNet::Address class encapsulates a TCP/UDP transport address
C Domain | Overload discriminator for Address::supports()
C NotLocal | Overload discriminator for Address::parse()
C Address4 | A 'sockaddr' wrapper class for IPv4 addresses
C Address6 | A 'sockaddr' wrapper class for IPv6 addresses
C AddressLocal | A 'sockaddr' wrapper class for local-domain addresses
C AddressStorage | A helper class for calling accept(), getsockname() and getpeername() and hiding the definition of sockaddr_storage
►C Client | A class for making an outgoing connection to a remote server, with support for socket-level protocols such as TLS/SSL and SOCKS 4a
C Config | A structure containing GNet::Client configuration parameters
C ClientPtr | A smart pointer class for GNet::Client or similar
C ClientPtrBase | The non-template part of GNet::ClientPtr
C Connection | An abstract interface which provides information about a network connection
►C DatagramSocket | A derivation of GNet::Socket for a datagram socket
C Config | A configuration structure for GNet::DatagramSocket
C Descriptor | A class that encapsulates a network socket file descriptor and an associated windows event handle
C Dnsbl | A minimal bridge to GNet::DnsBlock
C DnsBlock | Implements DNS blocklisting, as per RFC-5782
C DnsBlockCallback | A callback interface for GNet::DnsBlock
C DnsBlockResult | A result structure for GNet::DnsBlock, as delivered by the DnsBlockCallback interface
C DnsBlockServerResult | A result structure for one DNSBL server
C DnsMessage | A DNS message parser, with static factory functions for message composition
C DnsMessageNameParser | An implementation class used by GNet::DnsMessage to parse compressed domain names
C DnsMessageQuestion | Represents DNS question record
C DnsMessageRecordType | A static class for mapping between a RR type name, such as "AAAA", and its corresponding numeric value
C DnsMessageRequest | Represents a DNS query message
C DnsMessageRR | Represents DNS response record
C DnsMessageRRData | A trivial mix-in base class that simplifies method names when accessing data from a DnsMessageRR derived class
C Done | An exception class that is caught separately by GNet::EventEmitter and GNet::TimerList so that onException() callbacks have their 'done' parameter set
C EventEmitter | Provides static methods to raise an EventHandler event, as used by the various event loop implementations
C EventHandler | A base class for classes that have a file descriptor and handle asynchronous events from the event loop
C EventLogging | An interface for GNet classes that define a logging context string
C EventLoggingContext | A class that sets the G::LogOuput::context() while in scope
C EventLoop | An abstract base class for a singleton that keeps track of open sockets and their associated handlers
►C EventState | A lightweight object containing an ExceptionHandler pointer, optional ExceptionSource pointer and optional EventLogging pointer
C Private | Overload discriminator for GNet::EventState
C EventStateUnbound | Used as a device to force factory methods to plumb-in an ExceptionSource pointer into the newly-created object as soon as its address is available, before the EventState propagates into base classes and sub-objects
C ExceptionHandler | An abstract interface for handling exceptions thrown out of event-loop callbacks (socket/future events and timer events)
C ExceptionSource | A mixin base class that identifies the source of an exception when delivered to GNet::ExceptionHandler
C FutureEvent | A FutureEvent object can be used to send a one-shot event between threads via the event loop, resulting in a call to the relevant event handler
C FutureEventHandler | A callback interface for GNet::FutureEvent
►C Interfaces | A class for getting a list of network interfaces and their addresses
C Item | Used by GNet::Interfaces to describe an interface address binding
C InterfacesHandler | An interface for receiving notification of network changes
C InterfacesNotifier | A pimple base-class used by GNet::Interfaces
►C LineBuffer | A class that does line buffering, supporting auto-detection of line endings and fixed-size block extraction
C Config | A configuration structure for GNet::LineBuffer
C LineBufferState | Provides information about the state of a line buffer
C LineStore | A pair of character buffers, one kept by value and the other being an ephemeral extension
C LineStoreIterator | An iterator class for GNet::LineStore
C Listener | An interface for a network listener
C Listeners | Represents a set of listening inputs which can be file-descriptor, interface or network address
C Local | A static class for getting information about the local machine's network name and address
C Location | A class that represents the remote target for out-going client connections
C Monitor | A singleton for monitoring GNet::Client and GNet::ServerPeer connections
►C MultiServer | A server that listens on more than one address using a facade pattern to multiple GNet::Server instances
C ServerInfo | A structure used in GNet::MultiServer::newPeer()
C RawSocket | A derivation of GNet::SocketBase for a raw socket, typically of type AF_NETLINK or PF_ROUTE
►C Resolver | A class for synchronous or asynchronous network name to address resolution
C Callback | An interface used for GNet::Resolver callbacks
C Config | A configuration structure for GNet::Resolver
►C ResolverFuture | A 'future' shared-state class for asynchronous name resolution that holds parameters and results of a call to getaddrinfo(), as performed by the run() method
C Result | Result structure for GNet::ResolverFuture::get()
►C Server | A network server class which listens on a specific port and spins off ServerPeer objects for each incoming connection
C Config | A configuration structure for GNet::Server
►C ServerPeer | An abstract base class for the GNet::Server's connection to a remote client
C Config | A configuration structure for GNet::ServerPeer
C ServerPeerInfo | A move-only structure used in GNet::Server::newPeer() and containing the new socket
►C Socket | An internet-protocol socket class
C Adopted | Overload discriminator class for GNet::Socket
C Config | A configuration structure for GNet::Socket
►C SocketBase | A socket base class that holds a non-blocking socket file descriptor and interfaces to the event loop
C Accepted | Overload discriminator class for GNet::SocketBase
C Raw | Overload discriminator class for GNet::SocketBase
C SocketBindError | Exception class for GNet::SocketBase bind failures
►C SocketProtocol | An interface for implementing a low-level TLS/SSL protocol layer on top of a connected non-blocking socket
C Config | A configuration structure for GNet::SocketProtocol
C SocketProtocolSink | An interface used by GNet::SocketProtocol to deliver data from a socket
C Socks | Implements the SOCKS4a proxy connection protocol
►C StreamSocket | A derivation of GNet::Socket for a stream socket
C Config | A configuration structure for GNet::StreamSocket
C Listener | Overload discriminator class for GNet::StreamSocket
C Task | A class for running an exectuable in a separate process with an asychronous completion callback
C TaskCallback | An abstract interface for callbacks from GNet::Task
C Timer | A timer class template in which the timeout is delivered to the specified method
C TimerBase | An interface used by GNet::TimerList to keep track of pending timeouts and to deliver timeout events
C TimerList | A singleton which maintains a list of all Timer objects, and interfaces to the event loop on their behalf
►N GPop | POP3 classes
►C Server | A POP server class
C Config | A structure containing GPop::Server configuration parameters
C ServerPeer | Represents a connection from a POP client
►C ServerProtocol | Implements the POP server-side protocol
C Config | A structure containing configuration parameters for ServerProtocol
C Security | An interface used by ServerProtocol to enable TLS
C Sender | An interface used by ServerProtocol to send protocol replies
C Text | An interface used by ServerProtocol to provide response text strings
C ServerProtocolText | A default implementation for the ServerProtocol::Text interface
►C Store | A message store
C Config | Configuration structure for GPop::Store
C StoreList | Represents the protocol's view of the pop store having 1-based message ids
C StoreMessage | A structure representing a pop message
C StoreUser | Holds the list of messages available to a particular pop user
►N GSmtp | SMTP classes
►C AdminServer | A server class which implements the emailrelay administration interface
C Config | A configuration structure for GSmtp::AdminServer
C AdminServerPeer | A derivation of ServerPeer for the administration interface
►C Client | A class which acts as an SMTP client, sending messages to a remote SMTP server
C Config | A structure containing GSmtp::Client configuration parameters
C MessageDoneInfo | Signal parameters for GNet::Client::messageDoneSignal()
►C ClientProtocol | Implements the client-side SMTP protocol
C Config | A structure containing GSmtp::ClientProtocol configuration parameters
C DoneInfo | Parameters for GSmtp::ClientProtocol::doneSignal()
C Sender | An interface used by ClientProtocol to send protocol messages
C ClientReply | Encapsulates SMTP replies from a remote client, or replies from a client filter, or the result of a TLS handshake
►C Filter | An interface for processing a message file through a filter
C Config | Configuration passed to filter constructors
C Exit | Interprets an executable filter's exit code
►C FilterFactoryBase | A factory interface for making GSmtp::Filter message processors
C Spec | Filter specification tuple for GSmtp::FilterFactoryBase::newFilter()
C Forward | A class for forwarding messages from a message store that manages a GSmtp::Client instance, connecting and disconnecting as necessary to do routing and re-authentication
►C ProtocolMessage | An interface used by the ServerProtocol class to assemble and process an incoming message
C FromInfo | Extra information from the SMTP MAIL-FROM command passed to GSmtp::ProtocolMessage::setFrom()
C ProcessedInfo | Parameters for GSmtp::ProtocolMessage::processedSignal()
C ToInfo | Extra information passed to GSmtp::ProtocolMessage::addTo()
C ProtocolMessageForward | A concrete implementation of the ProtocolMessage interface that stores incoming messages in the message store and then immediately forwards them on to the downstream server
C ProtocolMessageStore | A concrete implementation of the ProtocolMessage interface that stores incoming messages in the message store
C RequestClient | A network client class that interacts with a remote server using a stateless line-based request/response protocol
►C Server | An SMTP server class
C Config | A configuration structure for GSmtp::Server
►C ServerBufferIn | A helper class for GSmtp::ServerProtocol that does buffering of data received from the remote peer and apply()s it to the server protocol
C Config | A configuration structure for GSmtp::ServerBufferIn
►C ServerParser | A static class for SMTP command parsing, used by GSmtp::ServerProtocol as a mix-in base
C AddressCommand | Mail-from or rcpt-to
C Config | A configuration structure for GSmtp::ServerParser
C ServerPeer | Handles a connection from a remote SMTP client
►C ServerProtocol | Implements the SMTP server-side protocol
C Config | A configuration structure for GSmtp::ServerProtocol
C Text | An interface used by GSmtp::ServerProtocol to provide response text strings
►C ServerSend | A simple mix-in class for GSmtp::ServerProtocol that sends protocol responses via a GSmtp::ServerSender
C Advertise | Configuration for the EHLO response
C ServerSender | An interface used by ServerProtocol to send protocol responses
C ServerText | A default implementation of the GSmtp::ServerProtocol::Text interface
C SpamClient | A client class that interacts with a remote process using a protocol somewhat similar to the spamassassin spamc/spamd protocol
►C Verifier | An asynchronous interface that verifies recipient 'to' addresses
C Config | Configuration passed to address verifier constructors
C Request | Verification request passed to various GSmtp::Verifier::verify() overrides
►C VerifierFactoryBase | A factory interface for addresss verifiers
C Spec | Verifier specification tuple for GSmtp::VerifierFactoryBase::newVerifier()
C VerifierStatus | A structure returned by GSmtp::Verifier to describe the status of a 'rcpt-to' or 'vrfy' recipient
►N GSsl | TLS/SSL transport layer security classes
►N MbedTls | A namespace for implementing the GSsl interface using the mbedtls library
C Certificate | Holds a mbedtls_x509_crt structure
C Config | Holds protocol version information, etc
C Context | Holds a mbedtls_ssl_context structure
C Error | An exception class for GSsl::MbedTls classes
C Key | Holds a mbedtls_pk_context structure
C Rng | Holds a mbedtls_ctr_drbg_context structure
C SecureFile | An interface for reading a sensitive file and then overwriting its contents in memory
C X | Initialises and frees an mbedtls object on construction and destruction
►N OpenSSL | A namespace for implementing the GSsl interface using the OpenSSL library
C Certificate | Holds a certificate taken from an OpenSSL X509 structure
C CertificateChain | Holds a certificate chain taken from a stack of OpenSSL X509 structures
C Config | Holds protocol version information, etc
C Error | An exception class for GSsl::OpenSSL classes
C Digester | A class for objects that can perform a cryptographic hash
C DigesterImpBase | A base interface for GSsl::Digester pimple classes
C Library | A singleton class for initialising the underlying TLS library
C LibraryImpBase | A base interface for GSsl::Library pimple classes
C Profile | A base interface for profile classes that work with concrete classes derived from GSsl::LibraryImpBase and GSsl::ProtocolImpBase
C Protocol | A TLS protocol class
C ProtocolImpBase | A base interface for GSsl::Protocol pimple classes
►N GStore | Message store classes
C DirectoryReader | Used by GStore::FileStore, GStore::NewFile and GStore::StoredFile to claim read permissions for reading a directory
C Envelope | A structure containing the contents of an envelope file, with support for file reading, writing and copying
►C FileDelivery | An implementation of the MessageDelivery interface that delivers message files to mailboxes
C Config | A configuration structure for GStore::FileDelivery
C FileIterator | A GStore::MessageStore::Iterator for GStore::FileStore
C FileReader | Used by GStore::FileStore, GStore::NewFile and GStore::StoredFile to claim read permissions for reading a file
►C FileStore | A concrete implementation of the MessageStore interface dealing in paired flat files
C Config | Configuration structure for GStore::FileStore
C FileOp | Low-level file-system operations for GStore::FileStore
C FileWriter | Used by GStore::FileStore, GStore::NewFile and GStore::StoredFile to claim write permissions
C MessageDelivery | An interface to deliver a message to its local recipients' mailboxes
C MessageId | A somewhat opaque identifer for a GStore::MessageStore message id
►C MessageStore | A class which allows SMTP messages to be stored and retrieved
C Iterator | A base class for GStore::MessageStore iterators
C SmtpInfo | Information on the SMTP options used when submitted
C NewFile | A concrete class implementing the GStore::NewMessage interface using files
C NewMessage | An abstract class to allow the creation of a new message in the message store
C StoredFile | A concete class implementing the GStore::StoredMessage interface for separate envelope and content files in a spool directory
C StoredMessage | An abstract interface for messages which have come from the store
►N GVerifiers | Address verifier classes
C ExecutableVerifier | A Verifier that runs an executable
C InternalVerifier | The standard internal Verifier that accepts all mailbox names
C NetworkVerifier | A Verifier that talks to a remote address verifier over the network
C UserVerifier | A concrete Verifier class that verifies against the password database (ie
C VerifierFactory | A VerifierFactory implementation
N Main | Application-level classes
N std | STL namespace