The DTO returned by IAircraftDetailFetcher.
A base class for fetcher implementations that register an aircraft and then periodically fetch records related to that aircraft.
The fetched detail for an aircraft.
Holds the detail for an aircraft whose details were fetched by IAircraftOnlineLookup.
The event args used by IAircraftOnlineLookup.
Describes an entry in the IAircraftOnlineLookupLog.
The JSON object that carries the thumbnail data for an aircraft from www.airport-data.com
The DTO carrying the result of a JSON request for multiple thumbnails from www.airport-data.com.
An air pressure reading, as downloaded from the SDM site.
A class that wraps a queue of objects that one thread pushes onto while a background thread pops and processes them.
An implementation of IComparable that returns the comparative order of a byte array.
Represents a Classless Inter-Domain Routing value.
Compares Cidr objects for their relative order.
A static class with methods that can help when dealing with collections.
An immutable object that describes a point where an aircraft was seen and the time at which its position was recorded.
A utility class that calculates CRC16 checksums.
A utility class that calculates CCITT-16 CRC values.
A class that can calculate CRC32 parity bits that are applied to Mode-S messages.
A class that can calculate CRC64 checksums on a set of arbitrary bytes.
A class that switches the current thread to a particular culture when it is created and then restores the original culture when it's disposed.
Performs simple custom conversions.
A static class that can produce descriptions of objects that implement common interfaces.
An EventArgs that exposes a single value as a property.
A static class that makes it easier to use weak event handlers.
Methods that help when handling events.
Thrown when an event handler throws an exception in EventHelper.
Manages a self-expiring collection of items.
An instance of a collection item and its associated timestamp.
Manages a self-expiring dictionary of items.
Manages a self-expiring list of items.
Describes a filter.
An object that carries a bool filter.
Describes a filter against an enum value.
Describes a range filter to apply to a value.
A string filter to apply to a value.
A collection of Great Circle math functions, mostly cribbed from http://www.movable-type.co.uk/scripts/latlong.html.
Static methods for dealing with hierarchies.
Extensions to IList<T> that add some functionality present on List<T> but missing on the interface.
A class that can compare two IPAddresses for relative order.
A static class of methods that can help when dealing with IPAddress objects.
A static helper class that can make life easier when dealing with IPEndPoint objects.
An object that can serialise to JSON.
A class exposing the addresses of online help pages.
An immutable generic class that holds a pair of values of the same type. Can be used as a key in a hashtable / dictionary.
A class that describes a picture.
An EventArgs for events that need to refer to an instance of an IPlugin.
The class that passes parameters to Startup(PluginStartupParameters).
Utility methods for working with properties.
Exposes a collection of every queue running within the program.
Describes a connection to a rebroadcast server.
A helper class that can round numbers quickly, but only if they are within certain ranges.
A class that implements a simple lock that avoids the overhead imposed by using lock().
A wrapper class that calls Lock in its constructor and Unlock in its Dispose.
A collection of methods that can help when dealing with streams.
A utility class that can be used to remove duplicates of strings.
A string writer that lets you set the encoding.
Records an exception and the time (at UTC) when it was thrown.
A base class for simple state objects that carry information in BeginXXXXX calls. Holds a wait handle that can be manually signalled in the EndXXXXXX call and waited on in calling thread.
The default implementation of IWeakEventHandler.
A static class that helps with some common tasks when dealing with web requests.
Describes the request of a request to an Internet-based API.
The interface for classes that can take an Access list from Settings and use that to decide whether to allow or disallow an incoming connection or request.
Describes everything that is known about an aircraft that is being tracked.
The interface for objects that can compare two IAircraft for relative sort order.
The interface for a singleton class that periodically fetches all aircraft details from the database.
The interface for objects that can collect together information from the messages transmitted by aircraft, and lookups in various data sources, to maintain a list of aircraft and their current state.
The interface for an object that can batch up lookups of aircraft details from an online source.
Caches the results of online aircraft detail lookups.
Records the online aircraft detail lookup requests and responses over the past so-many minutes.
Brings together the online lookup and the online lookup cache. If you want something from the online aircraft lookup then talk to this object.
The interface that online lookup provider can implement to change where IAircraftOnlineLookup goes to fetch aircraft details.
The interface for an object that can deal with finding pictures of aircraft.
The interface for objects that test the sanity of position reports and altitudes received for aircraft.
The interface that objects that expose access to the www.airport-data.com API must implement.
The interface that objects that download air pressure readings has to implement.
The interface for objects that can take a list of air pressures and from that give you the closest air pressure reading for a point on the surface of the earth.
The interface that objects that manage the downloading of air pressure readings has to implement.
The interface for objects that can expose information about the application.
The interface for objects that can generate audio.
The interface for a singleton object that can automatically apply the picture folder name from the configuration to an IDirectoryCache.
An interface for objects that may be utilising background threads and want to allow exceptions on those threads to bubble up to the GUI thread.
The interface for an object that does some work on a background thread and then quits the thread. The intention is that it is used once and then discarded, it cannot be used twice.
The interface for classes that can take an array of bytes and stream bits from that byte array.
The interface for an object that can parse a callsign.
The interface for an object that abstracts away the clock.
The interface for objects that listen to a web server, track connections to it and periodically record details of those connections in a local database.
The interface for objects that can cache the filenames in a folder.
The interface for the object that abstracts away the environment for IDirectoryCache implementations.
The interface for an object that exposes information about a file.
The interface for objects that can report exceptions.
The interface for objects that find out the external IP address of the user.
The object that abstracts away the environment for tests on IExternalIPAddressService.
A service that raises an event on a background thread every so-many minutes.
The interface for an object that can determine the dimensions of an image stored in an image file.
Manages access to images stored on disk.
The interface for objects that can manage log files for us.
The interface for objects that abstract away the environment for ILog implementations.
The interface for an object that can show a modal message to the user.
The interface for objects that can check with the VirtualRadarServer website to see whether a new version is available for download.
The interface for providers that abstract away parts of the environment for testing.
Describes the interface for a class that plugin DLLs must implement in order to be loaded by Virtual Radar Server.
The interface for the object that manages plugins on behalf of the program.
The interface for objects that abstract away the environment for IPluginManager implementations.
The interface for queues that can be interrogated to find out how many items they are holding.
The interface for singleton objects that can tell the program about the environment it's running under.
The interface for implementations of IAircraftList that can have aircraft created and added to the list by the program rather than from an external source like an instance of BaseStation.
Declares that the interface this is implemented by is intended to be used as a singleton.
The interface for a wrapper around the .NET SpeechSynthesizer class.
The interface for the standalone aircraft online lookup cache. This is the fallback that is used when no other cache is available. It is registered with a priority of zero.
A class that records various statistics.
The interface for objects that periodically raise an event.
The interface for event handlers that can hold a weak reference to a target.
The interface for objects that can serialise objects to XML and deserialise objects from XML.
The delegate for a method that will automatically unregister an event handler when the owning object is garbage collected.
An enumeration of the different sources that aircraft lists can come from.
The different types of altitude and vertical rate decoded by VRS.
An enumeration of the different mechanisms that the BackgroundThreadQueue can use.
An enumeration of the different desgrees of certainty the program has regarding the sanity of a value.
An enumeration of the different distance units that the website can display.
An enumeration of the different conditions that a value can be filtered on.
An enumeration of the different heights that the web site knows about.
An enumeration of the different speed units that the web site can deal with.
An enumeration of the different types of transponder that VRS can decode messages from.
The interfaces, enumerations and classes in this namespace are held in VirtualRadar.Interface.dll. Virtual Radar Server is loosely coupled (see the remarks against the InterfaceFactory namespace) and almost all of the classes used by the program are private to the library that they live in. They all implement interfaces and the program uses a singleton class factory in InterfaceFactory to resolve references to interfaces when the need arises.
These interfaces are all declared in this library, VirtualRadar.Interface.dll. The library does not contain any of the implementations. It has almost no references to other projects within Virtual Radar Server, aside from InterfaceFactory. Along with the interfaces for the program it also contains the enumerations, custom EventArgs, Exception and Attribute classes that the interfaces refer to. It also contains one or two public helper classes, usually static classes, that the implementations of the interfaces may find useful.