►NG | Low-level classes |
►NAlignImp | An implementation namespace for G::align() |
Clog2of | Evaluates the number of bits in the template parameter N |
Clog2of< 1U > | Terminal specialisation of log2of<N> |
►NEightBitImp | An implementation namespace for G::eightbit() |
Cextend | Evaluates a type 'T' bitmask comprising N copies of byte 't' |
Cextend< T, t, 1U > | Terminal specialisation of extend<> |
Cis8bit_fn | Functor returning true if 't' AND-ed with an extend mask based on 0x80 is non-zero |
►NLogOutputImp | An implementation namespace for G::LogOutput |
Costream | An ostream using a G::omembuf streambuf |
►NMd5Imp | An implementation namespace for G::Md5 |
Cblock | A helper class used by the Md5Imp::digest implementation to represent a 64-character data block |
Cdigest | A class that calculates an md5 digest from one or more 64-byte blocks of data using the algorithm described by RFC-1321 |
Cformat | A thin veneer over G::HashState |
►NSlot | A callback mechanism that isolates event sinks from event sources |
CBinder | A functor class template that contains the target object pointer and method pointer, similar to c++20 bind_front(&T::fn,tp) |
CSignal | A slot holder, with connect() and emit() methods |
CSignalImp | A slot/signal scoping class |
CSlot | 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 |
►NStrImp | An implementation namespace for G::Str |
CInPlaceBackInserter | A character appender used by G::Str |
CJoiner | A sub-string joiner used by G::Str |
CPrintableAppender | A character appender used by G::Str |
CArg | A class which holds a represention of the argc/argv command line array, and supports simple command-line parsing |
CBase64 | A base64 codec class |
Cbasic_imembuf | An input streambuf that takes its data from a fixed-size const buffer |
Cbasic_string_view | A class template like c++17's std::basic_string_view |
CBatchFile | A class for reading and writing windows-style startup batch files containing a single command-line, optionally using "start" |
CBrokenDownTime | An encapsulation of 'struct std::tm' |
CBuffer | A substitute for std::vector<char> that has more useful alignment guarantees and explicitly avoids default initialisation of each element |
CCallFrame | An object to represent a nested execution context |
CCallStack | A linked list of CallFrame pointers |
►CCleanup | A static interface for registering cleanup functions that are called when the process terminates abnormally |
CBlock | A RAII class to temporarily block signal delivery |
CCleanupImp | A static implementation class used by G::Cleanup |
►CConvert | A static class which provides string encoding conversion functions |
CThrowOnError | Holds context information which convert() adds to the exception when it fails |
Cutf8 | A string wrapper that indicates UTF-8 encoding |
CDaemon | A static interface for daemonising the calling process |
►CDate | A day-month-year date class |
CLocalTime | An overload discriminator class for Date constructors |
CDateTime | A static class that knows about timezone offsets |
CDirectory | An encapsulation of a file system directory that works with G::DirectoryIterator |
CDirectoryIterator | A iterator that returns filenames in a directory |
CDirectoryIteratorImp | A pimple-pattern implementation class for DirectoryIterator using opendir()/readdir() |
►CDirectoryList | A iterator similar to G::DirectoryIterator but doing all file i/o in one go |
CItem | A directory-entry item for G::DirectoryList |
CEnvironment | Holds a set of environment variables and also provides static methods to wrap getenv() and putenv() |
CException | A general-purpose exception class derived from std::exception and containing an error message |
CExecutableCommand | A structure representing an external program, holding a path and a set of arguments |
►CFile | A simple static class for dealing with files |
CAppend | An overload discriminator for G::File::open() |
CStat | A portable 'struct stat' |
CText | An overload discriminator for G::File::open() |
Cformat | A simple version of boost::format for formatting strings in an i18n-friendly way |
CGetOpt | A command-line option parser |
►CHash | A class for creating HMACs using an arbitrary cryptographic hash function as per RFC-2104 |
CMasked | An overload discriminator for G::Hash::hmac() |
CHashState | Functions for representing the intermediate state of a hash function as a non-printable string |
CHashStateImp | The non-template part of G::HashState |
CIdentity | A combination of user-id and group-id, with a very low-level interface to the get/set/e/uid/gid functions |
Climits | A scoping structure for a set of buffer sizes |
CLog | A class for doing iostream-based logging |
►CLogOutput | Controls and implements low-level logging output, as used by G::Log |
CConfig | A configuration structure for G::LogOutput |
►CMapFile | 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 |
CError | Exception class for G::MapFile |
►CMd5 | MD5 message digest class |
Cdigest_state | Holds the four parts of the md5 state |
Cdigest_stream_state | Holds the md5 state plus unprocessed residual data |
CMsg | Wrappers for sendmsg() and recvmsg() |
►CNewProcess | A class for creating new processes |
CFd | Wraps up a file descriptor for passing to G::NewProcess |
CNewProcessConfig | Provides syntactic sugar for the G::NewProcess constructor |
CNewProcessImp | A pimple-pattern implementation class used by G::NewProcess |
CNewProcessWaitable | Holds the parameters and future results of a waitpid() system call, as performed by the wait() method |
Comembuf | An output streambuf that writes to a fixed-size char buffer |
COptionMap | A multimap-like container for command-line options and their values |
COptionParser | A parser for command-line arguments that operates according to an Options specification and returns an OptionValue multimap |
COptions | A class to represent allowed command-line options and to provide command-line usage text |
COptionsLayout | Describes the layout for G::Options output |
COptionValue | A simple structure encapsulating the value of a command-line option |
►CPam | A thin interface to the system PAM library, with two pure virtual methods that derived classes should implement: the converse() method supplies passwords etc |
CError | An exception class for G::Pam |
CItem | A structure used by G::Pam to hold conversation items |
CPamImp | A pimple-pattern implementation class for G::Pam |
CPath | A Path object represents a file system path |
CPathImp | A private implementation class used by G::Path providing a set of static methods |
CPidFile | A class for creating pid files |
CPipe | A private implementation class used by G::NewProcess that wraps a unix pipe |
►CProcess | A static interface for doing things with processes |
CId | Process-id class |
CUmask | Used to temporarily modify the process umask |
CUmaskImp | A private implemetation class for G::Process::Umask that hides mode_t |
CReadWrite | An abstract interface for reading and writing from a non-blocking i/o channel |
CRoot | A class which acquires the process's special privileges on construction and releases them on destruction |
CScopeExit | A class that calls an exit function at the end of its scope |
CScopeExitSetFalse | A class that sets a boolean variable to false at the end of its scope |
CSignalSafe | An empty structure that is used to indicate a signal-safe, reentrant implementation |
CStateMachine | A finite state machine class template |
►CStr | A static class which provides string helper functions |
CHex | Overload discrimiator for G::Str::toUWhatever() indicating hexadecimal strings |
CLimited | Overload discrimiator for G::Str::toUWhatever() requesting a range-limited result |
►CStringWrap | A word-wrap class |
CConfig | Private implementation structure for G::StringWrap |
CWordWrapper | Private implementation structure for G::StringWrap |
CSystemTime | Represents a unix-epoch time with microsecond resolution |
CTest | A static interface for enabling test features at run-time |
Cthreading | Helper class for std::thread capabilities |
►CTime | A simple time-of-day (hh/mm/ss) class |
CLocalTime | An overload discriminator class for Time constructors |
CTimeInterval | An interval between two G::SystemTime values or two G::TimerTime values |
CTimerTime | A monotonically increasing subsecond-resolution timestamp, notionally unrelated to time_t |
CXtext | An xtext codec class, encoding space as "+20" etc |
►NGAuth | SASL authentication classes |
►NCramImp | An implementation namespace for GAuth::Cram |
CDigesterAdaptor | Used by GAuth::Cram to use GSsl::Digester |
CPostDigesterAdaptor | Used by GAuth::Cram to use GSsl::Digester |
CCram | Implements the standard challenge-response authentication mechanism of RFC-2195 |
CPamImp | A private implementation of the G::Pam interface used by GAuth::SaslServerPamImp, which is itself a private implementation class used by GAuth::SaslServerPam |
►CSaslClient | A class that implements the client-side SASL challenge/response concept |
CResponse | Result structure returned from GAuth::SaslClient::response |
CSaslClientImp | A private pimple-pattern implementation class used by GAuth::SaslClient |
CSaslClientSecrets | An interface used by GAuth::SaslClient to obtain a client id and its authentication secret |
CSaslServer | An interface for implementing the server-side SASL challenge/response concept |
CSaslServerBasic | An implementation of the SaslServer interface that does not use PAM |
CSaslServerBasicImp | A private pimple-pattern implementation class used by GAuth::SaslServerBasic |
CSaslServerFactory | Provides a factory function for SaslServer instances |
CSaslServerPam | An implementation of the SaslServer interface using PAM as the authentication mechanism |
CSaslServerPamImp | A private implementation class used by GAuth::SaslServerPam |
CSaslServerSecrets | An interface used by GAuth::SaslServer to obtain authentication secrets |
CSecret | Encapsulates a shared secret from the secrets file plus the associated userid |
CSecrets | A simple interface for a store of secrets used in authentication |
CSecretsFile | A class to read authentication secrets from file, used by GAuth::Secrets |
CValid | A trivial mix-in interface containing a valid() method |
►NGNet | Network classes |
►NDnsBlockImp | An implementation namespace for GNet::DnsBlock |
CDenier | A functor that tests a GNet::DnsBlockServerResult |
CHostList | A list of addresses used by GNet::DnsBlock |
CLaggard | A functor that tests a GNet::DnsBlockServerResult |
CResponder | A functor that tests a GNet::DnsBlockServerResult |
►NDnsMessageRecordTypeImp | A private implementation namespace for GNet::DnsMessage |
CPair | A std::pair-like structure used in GNet::DnsMessage, needed for gcc 4.2.1 |
►NEventHandlerListImp | An implementation namespace for GNet::EventHandlerList |
Cfdless | A functor that compares two file descriptors |
►NExceptionSinkImp | An implementation namespace for GNet::ExceptionSink |
CRethrowExceptionHandler | An GNet::ExceptionHandler that rethrows |
►NSocketImp | An implementation namespace for G::Socket |
COptions | Socket options |
►NStreamSocketImp | An implementation namespace for G::StreamSocket |
COptions | StreamSocket options |
CAcceptPair | A class which is used to return a new()ed socket to calling code, together with associated address information |
►CAddress | The GNet::Address class encapsulates a TCP/UDP transport address |
CDomain | Overload discriminator for Address::supports() |
CNotLocal | Overload discriminator for Address::parse() |
CAddress4 | A 'sockaddr' wrapper class for IPv4 addresses |
CAddress6 | A 'sockaddr' wrapper class for IPv6 addresses |
CAddressLocal | A 'sockaddr' wrapper class for local-domain addresses |
CAddressStorage | A helper class for calling accept(), getsockname() and getpeername() and hiding the definition of sockaddr_storage |
CAddressStorageImp | A pimple-pattern implementation class used by GNet::AddressStorage |
►CClient | A class for making an outgoing connection to a remote server, with support for socket-level protocols such as TLS/SSL and SOCKS 4a |
CConfig | A structure containing GNet::Client configuration parameters |
CClientPtr | A smart pointer class for GNet::Client |
CClientPtrBase | The non-template part of GNet::ClientPtr |
CConnection | An abstract interface which provides address information for a network connection |
CDatagramSocket | A derivation of GNet::Socket for a datagram socket |
CDescriptor | A class that encapsulates a network socket file descriptor and an associated windows event handle |
CDnsBlock | Implements DNS blocklisting, as per RFC-5782 |
CDnsBlockCallback | A callback interface for GNet::DnsBlock |
CDnsBlockResult | A result structure for GNet::DnsBlock, as delivered by the DnsBlockCallback interface |
CDnsBlockServerResult | A result structure for one DNSBL server |
CDnsMessage | A DNS message parser, with static factory functions for message composition |
CDnsMessageNameParser | An implementation class used by GNet::DnsMessage to parse compressed domain names |
CDnsMessageQuestion | Represents DNS question record |
CDnsMessageRecordType | A static class for mapping between a RR type name, such as "AAAA", and its corresponding numeric value |
CDnsMessageRequest | Represents a DNS query message |
CDnsMessageRR | Represents DNS response record |
CDone | An exception class that is detected by GNet::EventHandlerList and results in onException() being called with the 'done' parameter set |
CEventHandler | A base class for classes that handle asynchronous events from the event loop |
►CEventHandlerList | 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 |
CIterator | An iterator for GNet::EventHandlerList |
CLock | A RAII class to lock and unlock GNet::EventHandlerList |
CValue | A tuple for GNet::EventHandlerList |
CEventLoggingContext | A class that sets the G::LogOuput::context() while in scope |
CEventLoop | An abstract base class for a singleton that keeps track of open sockets and their associated handlers |
CEventLoopImp | A concrete implementation of GNet::EventLoop using select() in its implementation |
CExceptionHandler | An abstract interface for handling exceptions thrown out of event-loop callbacks (socket/future events and timer events) |
CExceptionSink | A tuple containing an ExceptionHandler interface pointer and a bound 'exception source' pointer |
CExceptionSinkUnbound | A potential ExceptionSink that is realised by bind()ing an exception source pointer |
CExceptionSource | A mixin base class that identifies the source of an exception when delivered to GNet::ExceptionHandler and optionally provides an indentifier for logging purposes |
CFdSet | An "fd_set" wrapper class used by GNet::EventLoopImp |
CFutureEvent | A FutureEvent object can be used to send a one-shot event via the event loop to the relevant event handler |
CFutureEventHandler | A callback interface for GNet::FutureEvent |
CFutureEventImp | A pimple-pattern implementation class used by GNet::FutureEvent |
►CInterfaces | A class for getting a list of network interfaces and their addresses |
CItem | Used by GNet::Interfaces to describe an interface address binding |
CInterfacesHandler | An interface for receiving notification of network changes |
CInterfacesNotifier | A pimple base-class used by GNet::Interfaces |
CInterfacesNotifierImp | Handles read events on a routing netlink socket |
CLineBuffer | A class that does line buffering, supporting auto-detection of line endings and fixed-size block extraction |
CLineBufferConfig | A configuration structure for GNet::LineBuffer |
CLineBufferIterator | Syntactic sugar for calling GNet::LineBuffer iteration methods |
CLineBufferState | Provides information abount the state of a line buffer |
CLineStore | A pair of character buffers, one kept by value and the other being an ephemeral extension |
CLineStoreIterator | An iterator class for GNet::LineStore |
CListener | An interface for a network listener |
CLocal | A static class for getting information about the local machine's network name and address |
CLocation | A class that represents the remote target for out-going client connections |
CMonitor | A singleton for monitoring GNet::Client and GNet::ServerPeer connections |
CMonitorImp | A pimple-pattern implementation class for GNet::Monitor |
►CMultiServer | A server that listens on more than one address using a facade pattern to multiple GNet::Server instances |
CServerInfo | A structure used in GNet::MultiServer::newPeer() |
CMultiServerImp | A GNet::Server class used in GNet::MultiServer |
CRawSocket | A derivation of GNet::SocketBase for a raw socket, typically of type AF_NETLINK or PF_ROUTE |
►CResolver | A class for synchronous or asynchronous network name to address resolution |
CCallback | An interface used for GNet::Resolver callbacks |
CResolverFuture | 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 |
CResolverImp | A private "pimple" implementation class used by GNet::Resolver to do asynchronous name resolution |
CServer | A network server class which listens on a specific port and spins off ServerPeer objects for each incoming connection |
CServerConfig | A configuration structure for GNet::Server |
CServerPeer | An abstract base class for the GNet::Server's connection to a remote client |
CServerPeerConfig | A structure that GNet::Server uses to configure its ServerPeer objects |
CServerPeerInfo | A structure used in GNet::Server::newPeer() |
CSocket | An internet-protocol socket class |
►CSocketBase | A socket base class that holds a non-blocking socket file descriptor and interfaces to the event loop |
CAccepted | Overload discriminator class for GNet::SocketBase |
CRaw | Overload discriminator class for GNet::SocketBase |
CSocketProtocol | An interface for implementing a low-level TLS/SSL protocol layer on top of a connected non-blocking socket |
►CSocketProtocolImp | A pimple-pattern implementation class used by GNet::SocketProtocol |
CPosition | A pointer into the scatter/gather payload of GNet::SocketProtocolImp::send() |
CSocketProtocolSink | An interface used by GNet::SocketProtocol to deliver data from a socket |
CSocks | Implements the SOCKS4a proxy connection protocol |
►CStreamSocket | A derivation of GNet::Socket for a stream socket |
CListener | Overload discriminator class for GNet::StreamSocket |
CTask | A class for running an exectuable in a separate process with an asychronous completion callback |
CTaskCallback | An abstract interface for callbacks from GNet::Task |
CTaskImp | A private implementation class used by GNet::Task |
CTimer | A timer class template in which the timeout is delivered to the specified method |
CTimerBase | An interface used by GNet::TimerList to keep track of pending timeouts and to deliver timeout events |
CTimerList | A singleton which maintains a list of all Timer objects, and interfaces to the event loop on their behalf |
►NGPop | POP3 classes |
CDirectoryReader | A trivial class which is used like G::Root by GPop::Store for reading directory listings |
CFileDeleter | A trivial specialisation of G::Root used by GPop::Store for deleting files |
CFileReader | A trivial class which is used like G::Root by GPop::Store for reading files |
►CServer | A POP server class |
CConfig | A structure containing GPop::Server configuration parameters |
CServerPeer | Represents a connection from a POP client |
►CServerProtocol | Implements the POP server-side protocol |
CConfig | A structure containing configuration parameters for ServerProtocol, currently empty |
CSecurity | An interface used by ServerProtocol to enable TLS |
CSender | An interface used by ServerProtocol to send protocol replies |
CText | An interface used by ServerProtocol to provide response text strings |
CServerProtocolText | A default implementation for the ServerProtocol::Text interface |
CStore | A message store |
CStoreLock | Represents an exclusive lock on the message store |
CStoreLockEntry | Represents a file in the GPop::Store |
►NGSmtp | SMTP and message-store classes |
CAdminServer | A server class which implements the emailrelay administration interface |
CAdminServerPeer | A derivation of ServerPeer for the administration interface |
CAnonymousText | Provides anodyne SMTP protocol text |
►CClient | A class which acts as an SMTP client, extracting messages from a message store and forwarding them to a remote SMTP server |
CConfig | A structure containing GSmtp::Client configuration parameters |
►CClientProtocol | Implements the client-side SMTP protocol |
CConfig | A structure containing GSmtp::ClientProtocol configuration parameters |
CSender | An interface used by ClientProtocol to send protocol messages |
CClientProtocolReply | A private implementation class used by ClientProtocol |
CDirectoryReader | Used by GSmtp::FileStore, GSmtp::NewFile and GSmtp::StoredFile to claim read permissions for reading a directory |
CEnvelope | A structure containing the contents of an envelope file, with support for file reading, writing and copying |
CExecutableFilter | A Filter class that runs an external helper program |
CExecutableVerifier | A Verifier that runs an executable |
►CFactoryParser | A simple static class to parse identifiers that are either a program path or a network address |
CResult | Result tuple for GSmtp::FactoryParser::parse() |
CFileIterator | A GSmtp::MessageStore::Iterator for GSmtp::FileStore |
CFileReader | Used by GSmtp::FileStore, GSmtp::NewFile and GSmtp::StoredFile to claim read permissions for reading a file |
CFileStore | A concrete implementation of the MessageStore interface dealing in paired flat files |
CFileWriter | Used by GSmtp::FileStore, GSmtp::NewFile and GSmtp::StoredFile to claim write permissions |
►CFilter | An interface for processing a message file through a filter |
CExit | Interprets an executable filter's exit code |
CFilterFactory | A factory interface for GSmtp::Filter message processors |
CFilterFactoryFileStore | A filter factory that holds a GSmtp::FileStore reference so that it can instantiate filters that operate on message files |
CInternalVerifier | The standard internal Verifier that accepts all mailbox names |
CMessageId | A somewhat opaque identifer for a MessageStore message |
►CMessageStore | A class which allows SMTP messages to be stored and retrieved |
CIterator | A base class for GSmtp::MessageStore iterators |
CNetworkFilter | A Filter class that passes the name of a message file to a remote network server |
CNetworkVerifier | A Verifier that talks to a remote address verifier over the network |
CNewFile | A concrete derived class implementing the GSmtp::NewMessage interface |
CNewMessage | An abstract class to allow the creation of a new message in the message store |
CNullFilter | A Filter class that does nothing |
CProtocolMessage | An interface used by the ServerProtocol class to assemble and process an incoming message |
CProtocolMessageForward | 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 |
CProtocolMessageStore | A concrete implementation of the ProtocolMessage interface that stores incoming messages in the message store |
CRequestClient | A network client class that interacts with a remote server using a stateless line-based request/response protocol |
►CServer | An SMTP server class |
CConfig | A structure containing GSmtp::Server configuration parameters |
CServerPeer | Handles a connection from a remote SMTP client |
►CServerProtocol | Implements the SMTP server-side protocol |
CConfig | A structure containing configuration parameters for ServerProtocol |
CSender | An interface used by ServerProtocol to send protocol replies |
CText | An interface used by ServerProtocol to provide response text strings |
CServerProtocolText | A default implementation for the ServerProtocol::Text interface |
CSpamClient | A client class that interacts with a remote process using a protocol somewhat similar to the spamassassin spamc/spamd protocol |
CSpamFilter | 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 |
CStoredFile | A concete derived class implementing the StoredMessage interface |
CStoredMessage | An abstract interface for messages which have come from the store |
CStoredMessageStub | A StoredMessage class that does nothing and can be used as a placeholder |
CVerifier | An asynchronous interface that verifies recipient 'to' addresses |
CVerifierFactory | A factory for addresss verifiers |
CVerifierStatus | A structure returned by GSmtp::Verifier to describe the status of a 'rcpt-to' or 'vrfy' recipient |
►NGSsl | TLS/SSL transport layer security classes |
►NOpenSSL | A namespace for implementing the GSsl interface using the OpenSSL library |
CCertificate | Holds a certificate taken from an OpenSSL X509 structure |
CCertificateChain | Holds a certificate chain taken from a stack of OpenSSL X509 structures |
CConfig | Holds protocol version information, etc |
CDigesterImp | An implementation of the GSsl::DigesterImpBase interface for OpenSSL |
CError | An exception class for GSsl::OpenSSL classes |
CLibraryImp | An implementation of the GSsl::LibraryImpBase interface for OpenSSL |
CProfileImp | An implementation of the GSsl::Profile interface for OpenSSL |
CProtocolImp | An implementation of the GSsl::ProtocolImpBase interface for OpenSSL |
CDigester | A class for objects that can perform a cryptographic hash |
CDigesterImpBase | A base interface for GSsl::Digester pimple classes |
CLibrary | A singleton class for initialising the underlying TLS library |
CLibraryImpBase | A base interface for GSsl::Library pimple classes |
CProfile | A base interface for profile classes that work with concrete classes derived from GSsl::LibraryImpBase and GSsl::ProtocolImpBase |
CProtocol | A TLS protocol class |
CProtocolImpBase | A base interface for GSsl::Protocol pimple classes |