E-MailRelay
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 CGNet::SocketBase::AcceptedOverload discriminator class for GNet::SocketBase
 CGNet::AcceptInfoA move-only class which is used to return a new()ed socket to calling code, together with associated address information
 CGNet::AddressThe GNet::Address class encapsulates a TCP/UDP transport address
 CGNet::Address4A 'sockaddr' wrapper class for IPv4 addresses
 CGNet::Address6A 'sockaddr' wrapper class for IPv6 addresses
 CGSmtp::ServerParser::AddressCommandMail-from or rcpt-to
 CGNet::AddressLocalA 'sockaddr' wrapper class for local-domain addresses
 CGNet::AddressStorageA helper class for calling accept(), getsockname() and getpeername() and hiding the definition of sockaddr_storage
 CGSmtp::AdminServerA server class which implements the emailrelay administration interface
 CGNet::Socket::AdoptedOverload discriminator class for GNet::Socket
 CGSmtp::ServerSend::AdvertiseConfiguration for the EHLO response
 CG::File::AppendAn overload discriminator for G::File::open()
 CG::ArgA class which holds a represention of the argc/argv command line array, and supports simple command-line parsing
 CG::Cleanup::ArgOpaque leaky string pointer wrapper created by G::Cleanup::arg()
 CG::Base64A base64 codec class
 Cstd::basic_streambuf
 CG::BasicAddressA structure that holds a network address as a string with no dependency on any low-level network library
 CG::BatchFileA class for reading and writing windows-style startup batch files containing a single command-line, optionally using "start"
 CG::Slot::Binder< T, Args >A functor class template that contains the target object pointer and method pointer, similar to c++20 bind_front(&T::fn,tp)
 CG::Cleanup::BlockA RAII class to temporarily block signal delivery
 CG::BrokenDownTimeAn encapsulation of 'struct std::tm'
 CG::Buffer< T >A substitute for std::vector<char> that has more useful alignment guarantees and explicitly avoids default initialisation of each element
 CGNet::Resolver::CallbackAn interface used for GNet::Resolver callbacks
 CG::CallFrameAn object to represent a nested execution context
 CG::CallStackA linked list of CallFrame pointers
 CGSsl::MbedTls::CertificateHolds a mbedtls_x509_crt structure
 CGSsl::OpenSSL::CertificateHolds a certificate taken from an OpenSSL X509 structure
 CGSsl::OpenSSL::CertificateChainHolds a certificate chain taken from a stack of OpenSSL X509 structures
 CG::CleanupA static interface for registering cleanup functions that are called when the process terminates abnormally
 CGNet::ClientPtrBaseThe non-template part of GNet::ClientPtr
 CGSmtp::ClientReplyEncapsulates SMTP replies from a remote client, or replies from a client filter, or the result of a TLS handshake
 CG::LogOutput::ConfigA configuration structure for G::LogOutput
 CG::NewProcess::ConfigConfiguration structure for G::NewProcess
 CG::OptionsUsage::ConfigA configuration structure for G::OptionsUsage
 CGFilters::MxLookup::ConfigA configuration structure for GFilters::MxLookup
 CGNet::Client::ConfigA structure containing GNet::Client configuration parameters
 CGNet::LineBuffer::ConfigA configuration structure for GNet::LineBuffer
 CGNet::Resolver::ConfigA configuration structure for GNet::Resolver
 CGNet::Server::ConfigA configuration structure for GNet::Server
 CGNet::ServerPeer::ConfigA configuration structure for GNet::ServerPeer
 CGNet::Socket::ConfigA configuration structure for GNet::Socket
 CGNet::SocketProtocol::ConfigA configuration structure for GNet::SocketProtocol
 CGPop::Server::ConfigA structure containing GPop::Server configuration parameters
 CGPop::ServerProtocol::ConfigA structure containing configuration parameters for ServerProtocol
 CGPop::Store::ConfigConfiguration structure for GPop::Store
 CGSmtp::AdminServer::ConfigA configuration structure for GSmtp::AdminServer
 CGSmtp::Client::ConfigA structure containing GSmtp::Client configuration parameters
 CGSmtp::ClientProtocol::ConfigA structure containing GSmtp::ClientProtocol configuration parameters
 CGSmtp::Filter::ConfigConfiguration passed to filter constructors
 CGSmtp::Server::ConfigA configuration structure for GSmtp::Server
 CGSmtp::ServerBufferIn::ConfigA configuration structure for GSmtp::ServerBufferIn
 CGSmtp::ServerParser::ConfigA configuration structure for GSmtp::ServerParser
 CGSmtp::ServerProtocol::ConfigA configuration structure for GSmtp::ServerProtocol
 CGSmtp::Verifier::ConfigConfiguration passed to address verifier constructors
 CGSsl::MbedTls::ConfigHolds protocol version information, etc
 CGSsl::OpenSSL::ConfigHolds protocol version information, etc
 CGStore::FileDelivery::ConfigA configuration structure for GStore::FileDelivery
 CGStore::FileStore::ConfigConfiguration structure for GStore::FileStore
 CGNet::ConnectionAn abstract interface which provides information about a network connection
 CGSsl::MbedTls::ContextHolds a mbedtls_ssl_context structure
 CG::ConvertA static class which provides string encoding conversion functions between UTF-8 and wchar_t
 CGAuth::CramImplements the standard challenge-response authentication mechanism of RFC-2195
 CG::File::CreateExclusiveAn overload discriminator for G::File::open()
 CG::DaemonA static interface for daemonising the calling process
 CG::DateA day-month-year date class
 CG::DateTimeA static class that knows about timezone offsets
 CGNet::DescriptorA class that encapsulates a network socket file descriptor and an associated windows event handle
 CG::Md5::digest_stateHolds the four parts of the md5 state
 CG::Md5::digest_stream_stateHolds the md5 state plus unprocessed residual data
 CGSsl::DigesterA class for objects that can perform a cryptographic hash
 CGSsl::DigesterImpBaseA base interface for GSsl::Digester pimple classes
 CG::DirectoryAn encapsulation of a file system directory that works with G::DirectoryIterator
 CG::DirectoryIteratorA iterator that returns unsorted filenames in a directory
 CG::DirectoryListA iterator similar to G::DirectoryIterator but doing all file i/o in one go and providing a sorted result
 CGNet::DnsblA minimal bridge to GNet::DnsBlock
 CGNet::DnsBlockCallbackA callback interface for GNet::DnsBlock
 CGNet::DnsBlockResultA result structure for GNet::DnsBlock, as delivered by the DnsBlockCallback interface
 CGNet::DnsBlockServerResultA result structure for one DNSBL server
 CGNet::DnsMessageA DNS message parser, with static factory functions for message composition
 CGNet::DnsMessageNameParserAn implementation class used by GNet::DnsMessage to parse compressed domain names
 CGNet::DnsMessageQuestionRepresents DNS question record
 CGNet::DnsMessageRecordTypeA static class for mapping between a RR type name, such as "AAAA", and its corresponding numeric value
 CGNet::DnsMessageRequestRepresents a DNS query message
 CGNet::DnsMessageRRDataA trivial mix-in base class that simplifies method names when accessing data from a DnsMessageRR derived class
 CGNet::Address::DomainOverload discriminator for Address::supports()
 CGSmtp::ClientProtocol::DoneInfoParameters for GSmtp::ClientProtocol::doneSignal()
 CGStore::EnvelopeA structure containing the contents of an envelope file, with support for file reading, writing and copying
 CG::EnvironmentHolds a set of environment variables and also provides static methods to wrap getenv() and putenv()
 CGNet::EventEmitterProvides static methods to raise an EventHandler event, as used by the various event loop implementations
 CGNet::EventHandlerA base class for classes that have a file descriptor and handle asynchronous events from the event loop
 CGNet::EventLoggingAn interface for GNet classes that define a logging context string
 CGNet::EventLoggingContextA class that sets the G::LogOuput::context() while in scope
 CGNet::EventLoopAn abstract base class for a singleton that keeps track of open sockets and their associated handlers
 CGNet::EventStateA lightweight object containing an ExceptionHandler pointer, optional ExceptionSource pointer and optional EventLogging pointer
 CGNet::EventStateUnboundUsed 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
 Cstd::exceptionSTL class
 CGNet::ExceptionHandlerAn abstract interface for handling exceptions thrown out of event-loop callbacks (socket/future events and timer events)
 CGNet::ExceptionSourceA mixin base class that identifies the source of an exception when delivered to GNet::ExceptionHandler
 CG::ExecutableCommandA structure representing an external program, holding a path and a set of arguments
 CGSmtp::Filter::ExitInterprets an executable filter's exit code
 CG::NewProcess::FdWraps up a file descriptor for passing to G::NewProcess
 CG::FileA simple static class for dealing with files
 CGStore::FileStore::FileOpLow-level file-system operations for GStore::FileStore
 CG::StringList::FilterFilters a list of strings with allow and deny lists
 CGSmtp::FilterAn interface for processing a message file through a filter
 CGSmtp::FilterFactoryBaseA factory interface for making GSmtp::Filter message processors
 CG::formatA simple version of boost::format for formatting strings in an i18n-friendly way
 CGSmtp::ForwardA 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
 CGSmtp::ProtocolMessage::FromInfoExtra information from the SMTP MAIL-FROM command passed to GSmtp::ProtocolMessage::setFrom()
 CGNet::FutureEventA 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
 CGNet::FutureEventHandlerA callback interface for GNet::FutureEvent
 CG::GetOptA command-line option parser
 CG::HashA class for creating HMACs using an arbitrary cryptographic hash function as per RFC-2104
 CG::HashStateImpThe non-template part of G::HashState
 CG::Str::HexOverload discrimiator for G::Str::toUWhatever() indicating hexadecimal strings
 CG::Process::IdProcess-id class
 CG::IdentityA combination of user-id and group-id, with a very low-level interface to the get/set/e/uid/gid functions
 CG::LogOutput::InstanceA set of convenience functions for calling LogOutput methods on LogOutput::instance()
 CGNet::InterfacesHandlerAn interface for receiving notification of network changes
 CGNet::InterfacesNotifierA pimple base-class used by GNet::Interfaces
 CG::DirectoryList::ItemA directory-entry item for G::DirectoryList
 CG::Pam::ItemA structure used by G::Pam to hold conversation items
 CGNet::Interfaces::ItemUsed by GNet::Interfaces to describe an interface address binding
 CGStore::MessageStore::IteratorA base class for GStore::MessageStore iterators
 CGSsl::MbedTls::KeyHolds a mbedtls_pk_context structure
 CGSsl::LibraryA singleton class for initialising the underlying TLS library
 CGSsl::LibraryImpBaseA base interface for GSsl::Library pimple classes
 CG::Str::LimitedOverload discrimiator for G::Str::toUWhatever() requesting a range-limited result
 CG::Limits< N >A set of compile-time buffer sizes
 CG::Limits< G::Scale::Normal >Normal specialisation of G::Limits
 CG::Limits< G::Scale::Small >Small-memory specialisation of G::Limits
 CGNet::LineBufferA class that does line buffering, supporting auto-detection of line endings and fixed-size block extraction
 CGNet::LineBufferStateProvides information about the state of a line buffer
 CGNet::LineStoreA pair of character buffers, one kept by value and the other being an ephemeral extension
 CGNet::LineStoreIteratorAn iterator class for GNet::LineStore
 CGNet::ListenerAn interface for a network listener
 CGNet::StreamSocket::ListenerOverload discriminator class for GNet::StreamSocket
 CGNet::ListenersRepresents a set of listening inputs which can be file-descriptor, interface or network address
 CGNet::LocalA static class for getting information about the local machine's network name and address
 CG::Date::LocalTimeAn overload discriminator class for Date constructors
 CG::Time::LocalTimeAn overload discriminator class for Time constructors
 CGNet::LocationA class that represents the remote target for out-going client connections
 CG::LogOutputControls and implements low-level logging output, as used by G::Log
 CG::LogStreamA non-throwing copyable wrapper for std::ostream, used by G::LogOutput and associated logging macros
 CG::MapFileA class for reading, writing and editing key=value files, supporting variable expansion of percent-key-percent values, comments, creation of backup files, and logging
 CG::Hash::MaskedAn overload discriminator for G::Hash::hmac()
 CG::Md5MD5 message digest class
 CGStore::MessageDeliveryAn interface to deliver a message to its local recipients' mailboxes
 CGSmtp::Client::MessageDoneInfoSignal parameters for GNet::Client::messageDoneSignal()
 CGStore::MessageIdA somewhat opaque identifer for a GStore::MessageStore message id
 CGStore::MessageStoreA class which allows SMTP messages to be stored and retrieved
 CGNet::MonitorA singleton for monitoring GNet::Client and GNet::ServerPeer connections
 CG::MsgWrappers for sendmsg() and recvmsg()
 CGStore::NewMessageAn abstract class to allow the creation of a new message in the message store
 CG::NewProcessA class for creating new processes
 CG::NewProcessWaitableHolds the parameters and future results of a waitpid() system call
 CGNet::Address::NotLocalOverload discriminator for Address::parse()
 CG::OptionA structure representing a G::Options command-line option
 CG::optional< T >A class template like a simplified c++17 std::optional
 CG::optional< std::string >
 CG::OptionMapA multimap-like container for command-line options and their values
 CG::OptionParserA parser for command-line arguments that operates according to an Options specification and returns an OptionValue multimap
 CG::OptionReaderProvides a static function to read options from a config file
 CG::OptionsA class to assemble a list of command-line options and provide access by name
 CG::OptionsUsageProvides help text for a set of options
 CG::OptionValueA simple structure encapsulating the value of a command-line option
 CG::PamA thin interface to the system PAM library, with two pure virtual methods that derived classes should implement: the converse() method supplies passwords etc
 CG::PathA Path object represents a file system path
 CG::PidFileA class for creating pid files
 CGNet::EventState::PrivateOverload discriminator for GNet::EventState
 CG::ProcessA static interface for doing things with processes
 CGSmtp::ProtocolMessage::ProcessedInfoParameters for GSmtp::ProtocolMessage::processedSignal()
 CGSsl::ProfileA base interface for profile classes that work with concrete classes derived from GSsl::LibraryImpBase and GSsl::ProtocolImpBase
 CGSsl::ProtocolA TLS protocol class
 CGSsl::ProtocolImpBaseA base interface for GSsl::Protocol pimple classes
 CGSmtp::ProtocolMessageAn interface used by the ServerProtocol class to assemble and process an incoming message
 CGNet::SocketBase::RawOverload discriminator class for GNet::SocketBase
 CG::ReadWriteAn abstract interface for reading and writing from a non-blocking i/o channel
 CGSmtp::Verifier::RequestVerification request passed to various GSmtp::Verifier::verify() overrides
 CGNet::ResolverA class for synchronous or asynchronous network name to address resolution
 CGNet::ResolverFutureA 'future' shared-state class for asynchronous name resolution that holds parameters and results of a call to getaddrinfo(), as performed by the run() method
 CGAuth::SaslClient::ResponseResult structure returned from GAuth::SaslClient::response
 CGNet::ResolverFuture::ResultResult structure for GNet::ResolverFuture::get()
 CGSsl::MbedTls::RngHolds a mbedtls_ctr_drbg_context structure
 CG::RootA class which acquires the process's special privileges on construction and releases them on destruction
 CGAuth::SaslClientA class that implements the client-side SASL challenge/response concept
 CGAuth::SaslClientSecretsAn interface used by GAuth::SaslClient to obtain a client id and its authentication secret
 CGAuth::SaslServerAn interface for implementing the server-side SASL challenge/response concept
 CGAuth::SaslServerFactoryProvides a factory function for SaslServer instances
 CGAuth::SaslServerSecretsAn interface used by GAuth::SaslServer to obtain authentication secrets
 CG::ScopeExitA class that calls an exit function at the end of its scope
 CG::ScopeExitSet< T, Value >A class that sets a simple variable to a particular value at the end of its scope
 CGAuth::SecretEncapsulates a userid/shared-secret/hash-function tuple from the secrets file
 CGAuth::SecretsProvides factory functions for client and server secrets objects
 CGAuth::SecretsFileA class to read authentication secrets from file, used by GAuth::Secrets
 CGSsl::MbedTls::SecureFileAn interface for reading a sensitive file and then overwriting its contents in memory
 CGPop::ServerProtocol::SecurityAn interface used by ServerProtocol to enable TLS
 CGPop::ServerProtocol::SenderAn interface used by ServerProtocol to send protocol replies
 CGSmtp::ClientProtocol::SenderAn interface used by ClientProtocol to send protocol messages
 CGSmtp::ServerBufferInA helper class for GSmtp::ServerProtocol that does buffering of data received from the remote peer and apply()s it to the server protocol
 CGNet::MultiServer::ServerInfoA structure used in GNet::MultiServer::newPeer()
 CGSmtp::ServerParserA static class for SMTP command parsing, used by GSmtp::ServerProtocol as a mix-in base
 CGNet::ServerPeerInfoA move-only structure used in GNet::Server::newPeer() and containing the new socket
 CGPop::ServerProtocolImplements the POP server-side protocol
 CGSmtp::ServerSendA simple mix-in class for GSmtp::ServerProtocol that sends protocol responses via a GSmtp::ServerSender
 CGSmtp::ServerSenderAn interface used by ServerProtocol to send protocol responses
 CG::Slot::Signal< SlotArgs >A slot holder, with connect() and emit() methods
 CG::Slot::Signal< bool >
 CG::Slot::Signal< const GSmtp::Client::MessageDoneInfo & >
 CG::Slot::Signal< const GSmtp::ClientProtocol::DoneInfo & >
 CG::Slot::Signal< const ProcessedInfo & >
 CG::Slot::Signal< const std::string & >
 CG::Slot::Signal< const std::string &, const std::string & >
 CG::Slot::Signal< const std::string &, const std::string &, const std::string & >
 CG::Slot::Signal< GSmtp::Verifier::Command, const GSmtp::VerifierStatus & >
 CG::Slot::Signal< GStore::MessageId, std::string, std::string >
 CG::Slot::Signal< int >
 CG::SignalSafeAn empty structure that is used to indicate a signal-safe, reentrant implementation
 CG::Slot::Slot< Args >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
 CG::Slot::Slot< SlotArgs... >
 CGStore::MessageStore::SmtpInfoInformation on the SMTP options used when submitted
 CSocketBindErrorBase
 CGNet::SocketProtocolAn interface for implementing a low-level TLS/SSL protocol layer on top of a connected non-blocking socket
 CGNet::SocketProtocolSinkAn interface used by GNet::SocketProtocol to deliver data from a socket
 CGNet::SocksImplements the SOCKS4a proxy connection protocol
 CGSmtp::FilterFactoryBase::SpecFilter specification tuple for GSmtp::FilterFactoryBase::newFilter()
 CGSmtp::VerifierFactoryBase::SpecVerifier specification tuple for GSmtp::VerifierFactoryBase::newVerifier()
 CG::File::StatA portable 'struct stat'
 CG::StateMachine< T, State, Event, Argument >A finite state machine class template
 CG::StateMachine< ServerProtocol, State, Event, EventData >
 CGPop::StoreA message store
 CGStore::StoredMessageAn abstract interface for messages which have come from the store
 CGPop::StoreListRepresents the protocol's view of the pop store having 1-based message ids
 CGPop::StoreMessageA structure representing a pop message
 CGPop::StoreUserHolds the list of messages available to a particular pop user
 CG::StrA static class which provides string helper functions
 Cstd::streambuf
 CG::string_viewA class like c++17's std::string_view
 CG::StringFieldIteratorT< T >A standard forward iterator for G::StringFieldT:
 CG::StringFieldT< T >A zero-copy string field iterator where the field separators are short fixed strings
 CG::StringTokenT< T >A zero-copy string token iterator where the token separators are runs of whitespace characters, with no support for escape characters
 CG::StringWrapA word-wrap class
 CG::SystemTimeRepresents a unix-epoch time with microsecond resolution
 CGNet::TaskA class for running an exectuable in a separate process with an asychronous completion callback
 CGNet::TaskCallbackAn abstract interface for callbacks from GNet::Task
 CG::TestA static interface for enabling test features at run-time
 CG::File::TextAn overload discriminator for G::File::open()
 CGPop::ServerProtocol::TextAn interface used by ServerProtocol to provide response text strings
 CGSmtp::ServerProtocol::TextAn interface used by GSmtp::ServerProtocol to provide response text strings
 CG::threadingHelper class for std::thread capabilities
 CG::TimeA simple time-of-day (hh/mm/ss) class
 CG::TimeIntervalAn interval between two G::SystemTime values or two G::TimerTime values
 CGNet::TimerBaseAn interface used by GNet::TimerList to keep track of pending timeouts and to deliver timeout events
 CGNet::TimerListA singleton which maintains a list of all Timer objects, and interfaces to the event loop on their behalf
 CG::TimerTimeA monotonically increasing subsecond-resolution timestamp, notionally unrelated to time_t
 CGSmtp::ProtocolMessage::ToInfoExtra information passed to GSmtp::ProtocolMessage::addTo()
 CG::Process::UmaskUsed to temporarily modify the process umask
 CGSmtp::VerifierAn asynchronous interface that verifies recipient 'to' addresses
 CGSmtp::VerifierFactoryBaseA factory interface for addresss verifiers
 CGSmtp::VerifierStatusA structure returned by GSmtp::Verifier to describe the status of a 'rcpt-to' or 'vrfy' recipient
 CGSsl::MbedTls::X< T >Initialises and frees an mbedtls object on construction and destruction
 CG::XtextAn xtext codec class, encoding space as "+20" etc