All Classes and Interfaces
Class
Description
This class provides the ability to pop items into
a queue thread-safely and know they'll happen later.
This class provides the ability to pop items into
a queue thread-safely and know they'll happen later.
This class exists to properly kill off multiple action queues
This class tracks the overall state of the
ActionQueue
s that
are in use throughout the system.This class represents the body of an HTML message.
The type of HTTP request body
Handy helpers when working with bytes
This uses a [ConcurrentHashMap] as its base.
Very important system design decisions are made here.
This class represents the information in the Content-Disposition
header of a multipart/form-data partition.
Holds important system-wide data and methods, such as the
logger, constants, and the
FullSystem
instance.Handy helpers for dealing with cryptographic functions
a memory-based disk-persisted database class.
An abstract data type meant to be used with
Db
Exceptions that occur in the
Db
Reads files from disk, optionally storing into a LRU cache.
Helper functions for working with files.
This is thrown when the user action is prevented by a
restriction we put on the system.
This class is responsible for instantiating necessary classes
for a valid system, in the proper order.
Tools to enable system-wide integration testing
A
Response
designed to work with FunctionalTesting
Details extracted from the headers.
Represents the expected types of things we may encounter when parsing an HTML string, which
for our purposes is
ParseNodeType
.Converts HTML strings to object trees.
An enum to represent the mode of conversation for HTTP -
plain text or encrypted (TLS)
The HTTP versions we handle
An interface for the
BodyProcessor
implementation.Logging code interface
Represents an inmate in our "jail".
This exception is thrown if the range of bytes provided for a request
is improper - such as if the range values were negative, wrongly-ordered,
and so on.
An exception specific to our invariants.
Utilities for asserting invariants within the code.
An interface for
Request
.An interface for
Response
.An interface for the
Server
implementation.This is the public interface to
ISocketWrapper
, whose
purpose is to make our lives easier when working with Socket
.Monitors the inmates who have misbehaved in our system.
The parameters required to set up a handler that is run after everything else in the
web framework.
Implementation of
ILogger
An enumeration of the levels of logging our system provides.
A simple Least-Recently Used Cache
See LRU
A
RuntimeException
scoped to the security packageThis class exists just to avoid needing to handle
the exception when I use a regular Thread.sleep()
The different kinds of things in an HTML document.
Thrown if a failure occurs parsing
Represents a single partition in a multipart/form-data body response
Some essential characteristics of the path portion of the start line
The input parameters that are required to add a pre-handler.
Handy helpers to make regular expression marginally
easier / more efficient, etc.
The result of rendering one of the
TemplateSection
s, used to build
up the full template.An HTTP request.
This class holds data and methods for dealing with the
"start line" in an HTTP request.
These are the HTTP methods we handle.
Represents an HTTP response.
This class is to improve maintainability in the system.
Utilities for searching collections of data
Helper functions for manipulating stack traces.
This class represents the text that is sent back in a
Response
See Status Codes
This class provides some tools for running a virtual stopwatch
while code is running, to examine code speed.
This class represents a single partition in a multipart/form
Request body, when read as an InputStream.
Some helper methods for Strings.
tagname and attributes inside an HTML5 tag
Possible tag names per the W3C HTML spec.
Thrown when failing to parse something in a template
This class provides methods for working with templates.
This exception is thrown when we try to render a string
template but fail to include a key for one of the key
values - that is, if the template is "hello {foo}", and
our map doesn't include a value for foo, this exception
will get thrown.
Thrown when a test fails
These are utility functions for basic automated
testing.
This implementation of
Logger
has a few
extra functions that only apply to tests, like TestLogger.test(String)
An implementation of
RuntimeException
, scoped
for the TestLogger.Used in
TestLogger
as a circular queue to store
the most recent log statements for analysis.See
ITheBrig
This exists so that we are able to better manage
exceptions in a highly threaded system.
This exists so that we are able to better manage
exceptions in a highly threaded system.
This exists so that we are able to slightly better manage
exceptions in a highly threaded system.
a functional interface used in
ILogger
, allows exceptions
to bubble up.Looking for bad actors in our system
This class enables pulling key-value pairs one at a time
from the Request body.
Represents a key-value pair with URL-encoding.
This class is responsible for the HTTP handling after socket connection.
This is just a
RuntimeException
that is scoped
for our web server.