E-MailRelay

Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1 2 3]

►N G | Low-level classes
►N AlignImp | An implementation namespace for G::align()
C log2of | Evaluates the number of bits in the template parameter N
C log2of< 1U > | Terminal specialisation of log2of<N>
►N EightBitImp | An implementation namespace for G::eightbit()
C extend | Evaluates a type 'T' bitmask comprising N copies of byte 't'
C extend< T, t, 1U > | Terminal specialisation of extend<>
C is8bit_fn | Functor returning true if 't' AND-ed with an extend mask based on 0x80 is non-zero
►N LogOutputImp | An implementation namespace for G::LogOutput
C ostream | An ostream using a G::omembuf streambuf
►N Md5Imp | An implementation namespace for G::Md5
C block | A helper class used by the Md5Imp::digest implementation to represent a 64-character data block
C digest | A class that calculates an md5 digest from one or more 64-byte blocks of data using the algorithm described by RFC-1321
C format | A thin veneer over G::HashState
►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 SignalImp | A slot/signal scoping class
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 StrImp | An implementation namespace for G::Str
C InPlaceBackInserter | A character appender used by G::Str
C Joiner | A sub-string joiner used by G::Str
C PrintableAppender | A character appender used by G::Str
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_string_view | A class template like c++17's std::basic_string_view
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 Block | A RAII class to temporarily block signal delivery
C CleanupImp | A static implementation class used by G::Cleanup
►C Convert | A static class which provides string encoding conversion functions
C ThrowOnError | Holds context information which convert() adds to the exception when it fails
C utf8 | A string wrapper that indicates UTF-8 encoding
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 filenames in a directory
C DirectoryIteratorImp | A pimple-pattern implementation class for DirectoryIterator using opendir()/readdir()
►C DirectoryList | A iterator similar to G::DirectoryIterator but doing all file i/o in one go
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 File | A simple static class for dealing with files
C Append | 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 HashStateImp | The non-template part of G::HashState
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 scoping structure for a set of buffer sizes
C Log | A class for doing iostream-based logging
►C LogOutput | Controls and implements low-level logging output, as used by G::Log
C Config | A configuration structure for G::LogOutput
►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 Fd | Wraps up a file descriptor for passing to G::NewProcess
C NewProcessConfig | Provides syntactic sugar for the G::NewProcess constructor
C NewProcessImp | A pimple-pattern implementation class used by G::NewProcess
C NewProcessWaitable | Holds the parameters and future results of a waitpid() system call, as performed by the wait() method
C omembuf | An output streambuf that writes to a fixed-size char buffer
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 Options | A class to represent allowed command-line options and to provide command-line usage text
C OptionsLayout | Describes the layout for G::Options output
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 PamImp | A pimple-pattern implementation class for G::Pam
C Path | A Path object represents a file system path
C PathImp | A private implementation class used by G::Path providing a set of static methods
C PidFile | A class for creating pid files
C Pipe | A private implementation class used by G::NewProcess that wraps a unix pipe
►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 UmaskImp | A private implemetation class for G::Process::Umask that hides mode_t
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 ScopeExitSetFalse | A class that sets a boolean variable to false 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 StringWrap | A word-wrap class
C Config | Private implementation structure for G::StringWrap
C WordWrapper | Private implementation structure for G::StringWrap
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
►N CramImp | An implementation namespace for GAuth::Cram
C DigesterAdaptor | Used by GAuth::Cram to use GSsl::Digester
C PostDigesterAdaptor | Used by GAuth::Cram to use GSsl::Digester
C Cram | Implements the standard challenge-response authentication mechanism of RFC-2195
C PamImp | A private implementation of the G::Pam interface used by GAuth::SaslServerPamImp, which is itself a private implementation class used by GAuth::SaslServerPam
►C SaslClient | A class that implements the client-side SASL challenge/response concept
C Response | Result structure returned from GAuth::SaslClient::response
C SaslClientImp | A private pimple-pattern implementation class used by GAuth::SaslClient
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 SaslServerBasicImp | A private pimple-pattern implementation class used by GAuth::SaslServerBasic
C SaslServerFactory | Provides a factory function for SaslServer instances
C SaslServerPam | An implementation of the SaslServer interface using PAM as the authentication mechanism
C SaslServerPamImp | A private implementation class used by GAuth::SaslServerPam
C SaslServerSecrets | An interface used by GAuth::SaslServer to obtain authentication secrets
C Secret | Encapsulates a shared secret from the secrets file plus the associated userid
C Secrets | A simple interface for a store of secrets used in authentication
C SecretsFile | A class to read authentication secrets from file, used by GAuth::Secrets
C Valid | A trivial mix-in interface containing a valid() method
►N GNet | Network classes
►N DnsBlockImp | An implementation namespace for GNet::DnsBlock
C Denier | A functor that tests a GNet::DnsBlockServerResult
C HostList | A list of addresses used by GNet::DnsBlock
C Laggard | A functor that tests a GNet::DnsBlockServerResult
C Responder | A functor that tests a GNet::DnsBlockServerResult
►N DnsMessageRecordTypeImp | A private implementation namespace for GNet::DnsMessage
C Pair | A std::pair-like structure used in GNet::DnsMessage, needed for gcc 4.2.1
►N EventHandlerListImp | An implementation namespace for GNet::EventHandlerList
C fdless | A functor that compares two file descriptors
►N ExceptionSinkImp | An implementation namespace for GNet::ExceptionSink
C RethrowExceptionHandler | An GNet::ExceptionHandler that rethrows
►N SocketImp | An implementation namespace for G::Socket
C Options | Socket options
►N StreamSocketImp | An implementation namespace for G::StreamSocket
C Options | StreamSocket options
C AcceptPair | A 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 AddressStorageImp | A pimple-pattern implementation class used by GNet::AddressStorage
►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
C ClientPtrBase | The non-template part of GNet::ClientPtr
C Connection | An abstract interface which provides address information for a network connection
C DatagramSocket | A derivation of GNet::Socket for a datagram socket
C Descriptor | A class that encapsulates a network socket file descriptor and an associated windows event handle
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 Done | An exception class that is detected by GNet::EventHandlerList and results in onException() being called with the 'done' parameter set
C EventHandler | A base class for classes that handle asynchronous events from the event loop
►C EventHandlerList | A class that maps from a file descriptor to an event handler and exception handler, used in the implemention of classes derived from GNet::EventLoop
C Iterator | An iterator for GNet::EventHandlerList
C Lock | A RAII class to lock and unlock GNet::EventHandlerList
C Value | A tuple for GNet::EventHandlerList
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 EventLoopImp | A concrete implementation of GNet::EventLoop using select() in its implementation
C ExceptionHandler | An abstract interface for handling exceptions thrown out of event-loop callbacks (socket/future events and timer events)
C ExceptionSink | A tuple containing an ExceptionHandler interface pointer and a bound 'exception source' pointer
C ExceptionSinkUnbound | A potential ExceptionSink that is realised by bind()ing an exception source pointer
C ExceptionSource | A mixin base class that identifies the source of an exception when delivered to GNet::ExceptionHandler and optionally provides an indentifier for logging purposes
C FdSet | An "fd_set" wrapper class used by GNet::EventLoopImp
C FutureEvent | A FutureEvent object can be used to send a one-shot event via the event loop to the relevant event handler
C FutureEventHandler | A callback interface for GNet::FutureEvent
C FutureEventImp | A pimple-pattern implementation class used by 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 InterfacesNotifierImp | Handles read events on a routing netlink socket
C LineBuffer | A class that does line buffering, supporting auto-detection of line endings and fixed-size block extraction
C LineBufferConfig | A configuration structure for GNet::LineBuffer
C LineBufferIterator | Syntactic sugar for calling GNet::LineBuffer iteration methods
C LineBufferState | Provides information abount 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 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 MonitorImp | A pimple-pattern implementation class for GNet::Monitor
►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 MultiServerImp | A GNet::Server class used in GNet::MultiServer
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 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 ResolverImp | A private "pimple" implementation class used by GNet::Resolver to do asynchronous name resolution
C Server | A network server class which listens on a specific port and spins off ServerPeer objects for each incoming connection
C ServerConfig | A configuration structure for GNet::Server
C ServerPeer | An abstract base class for the GNet::Server's connection to a remote client
C ServerPeerConfig | A structure that GNet::Server uses to configure its ServerPeer objects
C ServerPeerInfo | A structure used in GNet::Server::newPeer()
C Socket | An internet-protocol socket class
►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 SocketProtocol | An interface for implementing a low-level TLS/SSL protocol layer on top of a connected non-blocking socket
►C SocketProtocolImp | A pimple-pattern implementation class used by GNet::SocketProtocol
C Position | A pointer into the scatter/gather payload of GNet::SocketProtocolImp::send()
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 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 TaskImp | A private implementation class used by 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 DirectoryReader | A trivial class which is used like G::Root by GPop::Store for reading directory listings
C FileDeleter | A trivial specialisation of G::Root used by GPop::Store for deleting files
C FileReader | A trivial class which is used like G::Root by GPop::Store for reading files
►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, currently empty
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 StoreLock | Represents an exclusive lock on the message store
C StoreLockEntry | Represents a file in the GPop::Store
►N GSmtp | SMTP and message-store classes
C AdminServer | A server class which implements the emailrelay administration interface
C AdminServerPeer | A derivation of ServerPeer for the administration interface
C AnonymousText | Provides anodyne SMTP protocol text
►C Client | A class which acts as an SMTP client, extracting messages from a message store and forwarding them to a remote SMTP server
C Config | A structure containing GSmtp::Client configuration parameters
►C ClientProtocol | Implements the client-side SMTP protocol
C Config | A structure containing GSmtp::ClientProtocol configuration parameters
C Sender | An interface used by ClientProtocol to send protocol messages
C ClientProtocolReply | A private implementation class used by ClientProtocol
C DirectoryReader | Used by GSmtp::FileStore, GSmtp::NewFile and GSmtp::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 ExecutableFilter | A Filter class that runs an external helper program
C ExecutableVerifier | A Verifier that runs an executable
►C FactoryParser | A simple static class to parse identifiers that are either a program path or a network address
C Result | Result tuple for GSmtp::FactoryParser::parse()
C FileIterator | A GSmtp::MessageStore::Iterator for GSmtp::FileStore
C FileReader | Used by GSmtp::FileStore, GSmtp::NewFile and GSmtp::StoredFile to claim read permissions for reading a file
C FileStore | A concrete implementation of the MessageStore interface dealing in paired flat files
C FileWriter | Used by GSmtp::FileStore, GSmtp::NewFile and GSmtp::StoredFile to claim write permissions
►C Filter | An interface for processing a message file through a filter
C Exit | Interprets an executable filter's exit code
C FilterFactory | A factory interface for GSmtp::Filter message processors
C FilterFactoryFileStore | A filter factory that holds a GSmtp::FileStore reference so that it can instantiate filters that operate on message files
C InternalVerifier | The standard internal Verifier that accepts all mailbox names
C MessageId | A somewhat opaque identifer for a MessageStore message
►C MessageStore | A class which allows SMTP messages to be stored and retrieved
C Iterator | A base class for GSmtp::MessageStore iterators
C NetworkFilter | A Filter class that passes the name of a message file to a remote network server
C NetworkVerifier | A Verifier that talks to a remote address verifier over the network
C NewFile | A concrete derived class implementing the GSmtp::NewMessage interface
C NewMessage | An abstract class to allow the creation of a new message in the message store
C NullFilter | A Filter class that does nothing
C ProtocolMessage | An interface used by the ServerProtocol class to assemble and process an incoming message
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 structure containing GSmtp::Server configuration parameters
C ServerPeer | Handles a connection from a remote SMTP client
►C ServerProtocol | Implements the SMTP server-side protocol
C Config | A structure containing configuration parameters for ServerProtocol
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 SpamClient | A client class that interacts with a remote process using a protocol somewhat similar to the spamassassin spamc/spamd protocol
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 StoredFile | A concete derived class implementing the StoredMessage interface
C StoredMessage | An abstract interface for messages which have come from the store
C StoredMessageStub | A StoredMessage class that does nothing and can be used as a placeholder
C Verifier | An asynchronous interface that verifies recipient 'to' addresses
C VerifierFactory | A factory for addresss verifiers
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 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 DigesterImp | An implementation of the GSsl::DigesterImpBase interface for OpenSSL
C Error | An exception class for GSsl::OpenSSL classes
C LibraryImp | An implementation of the GSsl::LibraryImpBase interface for OpenSSL
C ProfileImp | An implementation of the GSsl::Profile interface for OpenSSL
C ProtocolImp | An implementation of the GSsl::ProtocolImpBase interface for OpenSSL
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