LogCabin
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
anonymous_namespace{Benchmark.cc}::OptionParserParses argv for the main function
anonymous_namespace{HelloWorld.cc}::OptionParserParses argv for the main function
anonymous_namespace{Main.cc}::OptionParserParses argv for the main function
anonymous_namespace{Main.cc}::PidFileRAII-style class to manage a file containing the process ID
anonymous_namespace{Reconfigure.cc}::OptionParserParses argv for the main function
anonymous_namespace{Tool.cc}::OptionParserParses argv for the main function
anonymous_namespace{TreeOps.cc}::OptionParserParses argv for the main function
LogCabin::Client::anonymous_namespace{MockClientImpl.cc}::RAIISwap< T >
LogCabin::Client::anonymous_namespace{MockClientImpl.cc}::TreeLeaderRPCThis class intercepts LeaderRPC calls from ClientImpl
LogCabin::Client::anonymous_namespace{MockClientImpl.cc}::TreeLeaderRPC::Call
LogCabin::Client::anonymous_namespace{ServerControl.cc}::OptionParserParses argv for the main function
LogCabin::Client::anonymous_namespace{ServerControl.cc}::ServerControlWrapper for invoking ServerControl RPCs
LogCabin::Client::BackoffA simple backoff mechanism
LogCabin::Client::ClientImplThe implementation of the client library
LogCabin::Client::ClientImpl::ExactlyOnceRPCHelperThis class helps with providing exactly-once semantics for read-write RPCs
LogCabin::Client::ClusterA handle to the LogCabin cluster
LogCabin::Client::ConditionNotMetExceptionSee Status::CONDITION_NOT_MET
LogCabin::Client::ConfigurationExceptionBadSee ConfigurationResult::BAD
LogCabin::Client::ConfigurationExceptionChangedSee ConfigurationResult::CHANGED
LogCabin::Client::ConfigurationResultReturned by Cluster::setConfiguration
LogCabin::Client::ExceptionBase class for LogCabin client exceptions
LogCabin::Client::GetConfigurationResultReturned by Cluster::getConfiguration2()
LogCabin::Client::InvalidArgumentExceptionSee Status::INVALID_ARGUMENT
LogCabin::Client::LeaderRPCThis is the implementation of LeaderRPCBase that uses the RPC system
LogCabin::Client::LeaderRPC::CallSee LeaderRPCBase::Call
LogCabin::Client::LeaderRPCBaseThis class is used to send RPCs from clients to the leader of the LogCabin cluster
LogCabin::Client::LeaderRPCBase::CallAn asynchronous version of call()
LogCabin::Client::LeaderRPCMockThis class is used in unit testing to interpose when clients send RPCs to the leader of the LogCabin cluster
LogCabin::Client::LeaderRPCMock::CallSee LeaderRPCBase::Call
LogCabin::Client::LookupExceptionSee Status::LOOKUP_ERROR
LogCabin::Client::MockClientImplA mock implementation of the client library that operates against a temporary, local, in-memory implementation
LogCabin::Client::ResultReturned by Tree operations; contain a status code and an error message
LogCabin::Client::ServerA member of the cluster Configuration
LogCabin::Client::SessionManagerUsed to create RPC::ClientSession objects and then immediately call VerifyRecipient RPCs on them
LogCabin::Client::SessionManager::LockedAssignment< T >Gets and sets a value while holding a mutex
LogCabin::Client::TestingCallbacksWhen running in testing mode, these callbacks serve as a way for the application to interpose on requests and responses to inject failures and model dynamic scenarios
LogCabin::Client::TimeoutExceptionSee Status::TIMEOUT
LogCabin::Client::TreeProvides access to the hierarchical key-value store
LogCabin::Client::TreeDetailsImplementation-specific members of Client::Tree
LogCabin::Client::TypeExceptionSee Status::TYPE_ERROR
LogCabin::Core::BufferA container for opaque data
LogCabin::Core::Checksum::anonymous_namespace{Checksum.cc}::AlgorithmsA container for a set of Algorithm implementations
LogCabin::Core::ConditionVariableSimilar to std::condition_variable but with improvements for testing, support for monotonic clocks, and less buggy
LogCabin::Core::ConfigReads and writes configuration files
LogCabin::Core::Config::ConversionError
LogCabin::Core::Config::ExceptionBase class for Config exceptions
LogCabin::Core::Config::FileNotFound
LogCabin::Core::Config::KeyNotFound
LogCabin::Core::Debug::DebugMessageWhen LogCabin wants to print a log message, this is the information that gets included
LogCabin::Core::HoldingMutexProof that the caller is holding some mutex
LogCabin::Core::MutexA wrapper around std::mutex that is useful for testing purposes
LogCabin::Core::MutexUnlock< Mutex >Release a mutex upon construction, reacquires it upon destruction
LogCabin::Core::ProtoBuf::InputStreamAn abstract stream from which ProtoBufs may be read
LogCabin::Core::ProtoBuf::OutputStreamAn abstract stream to which ProtoBufs may be written
LogCabin::Core::Random::anonymous_namespace{Random.cc}::RandomStateKeeps state needed by the random number generator, protected by a mutex
LogCabin::Core::RollingStatThis class gathers statistics about a given metric over time, like its average, standard deviation, and exponentially weighted moving average
LogCabin::Core::Time::CSteadyClockMonotonic clock in nanosecond granularity
LogCabin::Core::Time::CSystemClockWall clock in nanosecond granularity
LogCabin::Core::Time::MockableClock< _BaseClock >Reads the current time
LogCabin::Core::Time::MockableClock< _BaseClock >::MockerRAII class to mock out the clock and then restore it
LogCabin::Core::Time::SteadyTimeConverterUsed to convert one or more SteadyClock::time_point values into values of the SystemClock
LogCabin::Core::Util::FinallyCalls a function when this object goes out of scope
LogCabin::Core::Util::ThreadInterruptedExceptionThe thread could not complete its task because it was asked to exit
LogCabin::Event::FileA File is called by the Event::Loop when a file becomes readable or writable
LogCabin::Event::File::MonitorRegisters a File handler to be monitored by the Event::Loop
LogCabin::Event::LoopThis class contains an event loop based on Linux's epoll interface
LogCabin::Event::Loop::LockLock objects are used to synchronize between the Event::Loop thread and other threads
LogCabin::Event::Loop::NoOpLockableLockable type that compiles out entirely
LogCabin::Event::Loop::NullTimerUsed in breakTimer, whose purpose is not to handle events but to break runForever() out of epoll_wait
LogCabin::Event::SignalA Signal is called by the Event::Loop when a Unix signal is received
LogCabin::Event::Signal::BlockerBlocks asynchronous signal delivery on the current thread for the given signal
LogCabin::Event::Signal::MonitorRegisters a Signal handler to be monitored by the Event::Loop
LogCabin::Event::TimerA Timer is called by the Event::Loop when time has elapsed
LogCabin::Event::Timer::MonitorRegisters a Timer handler to be monitored by the Event::Loop
LogCabin::Protocol::Common::VersionMessage::Request
LogCabin::Protocol::Common::VersionMessage::Response
LogCabin::RPC::AddressThis class resolves user-friendly addresses for services into socket-level addresses
LogCabin::RPC::anonymous_namespace{ClientSession.cc}::FileNotifierExits an event loop when a file event occurs
LogCabin::RPC::anonymous_namespace{ClientSession.cc}::TimerNotifierExits an event loop when a timer event occurs
LogCabin::RPC::ClientRPCThis class represents an asynchronous remote procedure call
LogCabin::RPC::ClientSessionA ClientSession is used to initiate OpaqueClientRPCs
LogCabin::RPC::ClientSession::MessageSocketHandlerThis handles events from messageSocket
LogCabin::RPC::ClientSession::ResponseThis contains an expected response for a OpaqueClientRPC object
LogCabin::RPC::ClientSession::TimerThis is used to time out RPCs and sessions when the server is no longer responding
LogCabin::RPC::MessageSocketA MessageSocket is a message-oriented layer on top of a TCP connection
LogCabin::RPC::MessageSocket::HandlerAn interface for handling events generated by a MessageSocket
LogCabin::RPC::MessageSocket::HeaderThis is the header that precedes every message across the TCP socket
LogCabin::RPC::MessageSocket::InboundThis class stages a message while it is being received
LogCabin::RPC::MessageSocket::OutboundThis class stages a message while it is being sent
LogCabin::RPC::MessageSocket::ReceiveSocketThis class is an Event::File monitor that calls readable() when the socket can be read from without blocking
LogCabin::RPC::MessageSocket::SendSocketThis class is an Event::File monitor that calls writable() when the socket can be written to without blocking
LogCabin::RPC::OpaqueClientRPCThis class represents an asynchronous remote procedure call
LogCabin::RPC::OpaqueServerAn OpaqueServer listens for incoming RPCs over TCP connections
LogCabin::RPC::OpaqueServer::BoundListenerA socket that listens on a particular address
LogCabin::RPC::OpaqueServer::BoundListenerWithMonitorCouples a BoundListener with an Event::File::Monitor and destroys them in the right order (monitor first)
LogCabin::RPC::OpaqueServer::HandlerAn interface for handling events generated by an OpaqueServer
LogCabin::RPC::OpaqueServer::MessageSocketHandlerReceives events from a MessageSocket
LogCabin::RPC::OpaqueServer::SocketWithHandlerCouples a MessageSocketHandler with a MessageSocket (monitor) and destroys them in the right order (monitor first)
LogCabin::RPC::OpaqueServerRPCThis class represents the server side of a remote procedure call
LogCabin::RPC::Protocol::RequestHeaderPrefixThis is the first part of the request header that RPC clients send, common to all versions of the protocol
LogCabin::RPC::Protocol::RequestHeaderVersion1In version 1 of the protocol, this is the header format for requests from clients to servers
LogCabin::RPC::Protocol::ResponseHeaderPrefixThis is the first part of the response header that servers send, common to all versions of the protocol
LogCabin::RPC::Protocol::ResponseHeaderVersion1In version 1 of the protocol, this is the header format for RPC responses
LogCabin::RPC::ServerA Server listens for incoming RPCs over TCP connections and dispatches these to Services
LogCabin::RPC::Server::RPCHandlerServices RPCs
LogCabin::RPC::ServerRPCThis class represents the server side of a remote procedure call
LogCabin::RPC::ServiceBase class for RPC services
LogCabin::RPC::ServiceMockThis class is used to mock out a Service for testing a client that sends RPCs
LogCabin::RPC::ServiceMock::CloseSessionSee closeSession()
LogCabin::RPC::ServiceMock::ExpectedSee responseQueue
LogCabin::RPC::ServiceMock::HandlerThe base class for RPC handlers
LogCabin::RPC::ServiceMock::RejectInvalidRequestSee rejectInvalidRequest()
LogCabin::RPC::ServiceMock::ReplySee reply()
LogCabin::RPC::ServiceMock::ServiceSpecificErrorSee serviceSpecificError()
LogCabin::RPC::ThreadDispatchServiceThis class is an adaptor to enable multi-threaded services
LogCabin::Server::ClientServiceThis is LogCabin's application-facing RPC service
LogCabin::Server::ControlServiceInvoked by logcabinctl client to inspect and manipulate internal server state
LogCabin::Server::GlobalsHolds the LogCabin daemon's top-level objects
LogCabin::Server::Globals::ExitHandlerExits from the event loop upon receiving a UNIX signal
LogCabin::Server::Globals::LogRotateHandlerRe-opens the log file upon receiving a UNIX signal
LogCabin::Server::RaftConsensusAn implementation of the Raft consensus algorithm
LogCabin::Server::RaftConsensus::EntryThis is returned by getNextEntry()
LogCabin::Server::RaftConsensusInternal::anonymous_namespace{RaftConsensus.cc}::StagingProgressing
LogCabin::Server::RaftConsensusInternal::anonymous_namespace{RaftConsensus.cc}::StateMachineVersionIntersection
LogCabin::Server::RaftConsensusInternal::ClusterClockThis is the rough equivalent of a SteadyClock that can be shared across the network with other Raft servers
LogCabin::Server::RaftConsensusInternal::ConfigurationA configuration defines the servers that are part of the cluster
LogCabin::Server::RaftConsensusInternal::Configuration::SimpleConfigurationA list of servers in which a simple majority constitutes a quorum
LogCabin::Server::RaftConsensusInternal::ConfigurationManagerEnsures the current configuration reflects the latest state of the log and snapshot
LogCabin::Server::RaftConsensusInternal::Invariants
LogCabin::Server::RaftConsensusInternal::Invariants::ConsensusSnapshot
LogCabin::Server::RaftConsensusInternal::LocalServerA type of Server for the local process
LogCabin::Server::RaftConsensusInternal::PeerRepresents another server in the cluster
LogCabin::Server::RaftConsensusInternal::ServerA base class for known servers in the cluster, including this process (see LocalServer) and others (see Peer)
LogCabin::Server::RaftService
LogCabin::Server::ServerStatsManages creation of server statistics, which are used for diagnostics
LogCabin::Server::ServerStats::DeferredMembers that are constructed later, during enable()
LogCabin::Server::ServerStats::LockProvides read/write access to stats, protected against concurrent access
LogCabin::Server::ServerStats::SignalHandlerAsks statsDumper thread to dumps stats to the debug log (NOTICE level) on SIGUSR1 signal
LogCabin::Server::StateMachineInterprets and executes operations that have been committed into the Raft log
LogCabin::Server::StateMachine::SessionTracks state for a particular client
LogCabin::Storage::FilesystemUtil::FileA File object is just a wrapper around a file descriptor; it represents either an open file, an open directory, or an empty placeholder
LogCabin::Storage::FilesystemUtil::FileContentsProvides random access to a file
LogCabin::Storage::LayoutEncapsulates how LogCabin lays out the filesystem, and it handles locking of the storage directory
LogCabin::Storage::LogThis interface is used by RaftConsensus to store log entries and metadata
LogCabin::Storage::Log::SyncAn interface for flushing newly appended log entries to stable storage
LogCabin::Storage::MemoryLog
LogCabin::Storage::SegmentedLogThis class persists a log on the filesystem efficiently
LogCabin::Storage::SegmentedLog::PreparedSegmentsA producer/consumer monitor for a queue of files to use for open segments
LogCabin::Storage::SegmentedLog::SegmentAn open or closed segment
LogCabin::Storage::SegmentedLog::Segment::RecordDescribes a log entry record within a segment
LogCabin::Storage::SegmentedLog::SegmentHeaderThis goes at the start of every segment
LogCabin::Storage::SegmentedLog::SyncQueues various operations on files, such as writes and fsyncs, to be executed later
LogCabin::Storage::SegmentedLog::Sync::Op
LogCabin::Storage::SimpleFileLogTODO(ongaro): docs
LogCabin::Storage::SimpleFileLog::Sync
LogCabin::Storage::SnapshotFile::ReaderAssists in reading snapshot files from the local filesystem
LogCabin::Storage::SnapshotFile::WriterAssists in writing snapshot files to the local filesystem
LogCabin::Storage::SnapshotFile::Writer::SharedMMap< T >Allocates an object that is shared across processes
LogCabin::Tree::Internal::DirectoryAn interior object in the Tree; stores other Directories and Files
LogCabin::Tree::Internal::FileA leaf object in the Tree; stores an opaque blob of data
LogCabin::Tree::Internal::PathThis is used by Tree to parse symbolic paths into their components
LogCabin::Tree::ResultReturned by Tree operations; contain a status code and an error message
LogCabin::Tree::TreeThis is an in-memory, hierarchical key-value store
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines