Click or drag to resize
VirtualRadar.Interface Namespace
The root namespace for the application interfaces.
Classes
  ClassDescription
Public classAircraftComparerColumn
A list of column names that can be used with the IAircraftComparer. These names are sent to the server from Javascript on the browser, if you change these then you must also change the Javascript.
Public classAircraftDetail
The DTO returned by IAircraftDetailFetcher.
Public classAircraftFetcherTKey, TDetail
A base class for fetcher implementations that register an aircraft and then periodically fetch records related to that aircraft.
Protected classAircraftFetcherTKey, TDetailFetchedDetail
The fetched detail for an aircraft.
Public classAircraftOnlineLookupDetail
Holds the detail for an aircraft whose details were fetched by IAircraftOnlineLookup.
Public classAircraftOnlineLookupEventArgs
The event args used by IAircraftOnlineLookup.
Public classAircraftOnlineLookupLogEntry
Describes an entry in the IAircraftOnlineLookupLog.
Public classAirportDataThumbnailJson
The JSON object that carries the thumbnail data for an aircraft from www.airport-data.com
Public classAirportDataThumbnailsJson
The DTO carrying the result of a JSON request for multiple thumbnails from www.airport-data.com.
Public classAirPressure
An air pressure reading, as downloaded from the SDM site.
Public classBackgroundThreadQueueT
A class that wraps a queue of objects that one thread pushes onto while a background thread pops and processes them.
Public classByteArrayComparable
An implementation of IComparable that returns the comparative order of a byte array.
Public classCidr
Represents a Classless Inter-Domain Routing value.
Public classCidrComparer
Compares Cidr objects for their relative order.
Public classCollectionHelper
A static class with methods that can help when dealing with collections.
Public classCoordinate
An immutable object that describes a point where an aircraft was seen and the time at which its position was recorded.
Public classCrc16
A utility class that calculates CRC16 checksums.
Public classCrc16Ccitt
A utility class that calculates CCITT-16 CRC values.
Public classCrc32ModeS
A class that can calculate CRC32 parity bits that are applied to Mode-S messages.
Public classCrc64
A class that can calculate CRC64 checksums on a set of arbitrary bytes.
Public classCultureSwitcher
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.
Public classCustomConvert
Performs simple custom conversions.
Public classDescribe
A static class that can produce descriptions of objects that implement common interfaces.
Public classEventArgsT
An EventArgs that exposes a single value as a property.
Public classEventHandlerUtils
A static class that makes it easier to use weak event handlers.
Public classEventHelper
Methods that help when handling events.
Public classEventHelperException
Thrown when an event handler throws an exception in EventHelper.
Public classExpiringCollectionTItem
Manages a self-expiring collection of items.
Protected classExpiringCollectionTItemCollectionItemT
An instance of a collection item and its associated timestamp.
Public classExpiringDictionaryTKey, TValue
Manages a self-expiring dictionary of items.
Public classExpiringListT
Manages a self-expiring list of items.
Public classFilter
Describes a filter.
Public classFilterBool
An object that carries a bool filter.
Public classFilterEnumT
Describes a filter against an enum value.
Public classFilterRangeT
Describes a range filter to apply to a value.
Public classFilterString
A string filter to apply to a value.
Public classGreatCircleMaths
A collection of Great Circle math functions, mostly cribbed from http://www.movable-type.co.uk/scripts/latlong.html.
Public classHierarchy
Static methods for dealing with hierarchies.
Public classIListExtensions
Extensions to IList<T> that add some functionality present on List<T> but missing on the interface.
Public classIPAddressComparer
A class that can compare two IPAddresses for relative order.
Public classIPAddressHelper
A static class of methods that can help when dealing with IPAddress objects.
Public classIPEndPointHelper
A static helper class that can make life easier when dealing with IPEndPoint objects.
Public classJavascriptHelper
A collection of assorted methods that help make dealing with Javascript a bit easier.
Public classJsonSerialiser
An object that can serialise to JSON.
Public classOnlineHelpAddress
A class exposing the addresses of online help pages.
Public classPairT
An immutable generic class that holds a pair of values of the same type. Can be used as a key in a hashtable / dictionary.
Public classPictureDetail
A class that describes a picture.
Public classPluginEventArgs
An EventArgs for events that need to refer to an instance of an IPlugin.
Public classPluginStartupParameters
The class that passes parameters to Startup(PluginStartupParameters).
Public classPropertyHelper
Utility methods for working with properties.
Public classQueueRepository
Exposes a collection of every queue running within the program.
Public classRebroadcastServerConnection
Describes a connection to a rebroadcast server.
Public classRound
A helper class that can round numbers quickly, but only if they are within certain ranges.
Public classSpinLock
A class that implements a simple lock that avoids the overhead imposed by using lock().
Public classSpinLockAcquire
A wrapper class that calls Lock in its constructor and Unlock in its Dispose.
Public classStreamHelper
A collection of methods that can help when dealing with streams.
Public classStringDeduplicator
A utility class that can be used to remove duplicates of strings.
Public classStringWriterWithEncoding
A string writer that lets you set the encoding.
Public classTimestampedException
Records an exception and the time (at UTC) when it was thrown.
Public classWaitState
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.
Public classWeakEventHandlerT, E
The default implementation of IWeakEventHandler.
Public classWebRequestHelper
A static class that helps with some common tasks when dealing with web requests.
Public classWebRequestResultT
Describes the request of a request to an Internet-based API.
Interfaces
  InterfaceDescription
Public interfaceIAccessFilter
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.
Public interfaceIAircraft
Describes everything that is known about an aircraft that is being tracked.
Public interfaceIAircraftComparer
The interface for objects that can compare two IAircraft for relative sort order.
Public interfaceIAircraftDetailFetcher
The interface for a singleton class that periodically fetches all aircraft details from the database.
Public interfaceIAircraftList
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.
Public interfaceIAircraftOnlineLookup
The interface for an object that can batch up lookups of aircraft details from an online source.
Public interfaceIAircraftOnlineLookupCache
Caches the results of online aircraft detail lookups.
Public interfaceIAircraftOnlineLookupLog
Records the online aircraft detail lookup requests and responses over the past so-many minutes.
Public interfaceIAircraftOnlineLookupManager
Brings together the online lookup and the online lookup cache. If you want something from the online aircraft lookup then talk to this object.
Public interfaceIAircraftOnlineLookupProvider
The interface that online lookup provider can implement to change where IAircraftOnlineLookup goes to fetch aircraft details.
Public interfaceIAircraftPictureManager
The interface for an object that can deal with finding pictures of aircraft.
Public interfaceIAircraftSanityChecker
The interface for objects that test the sanity of position reports and altitudes received for aircraft.
Public interfaceIAirportDataDotCom
The interface that objects that expose access to the www.airport-data.com API must implement.
Public interfaceIAirPressureDownloader
The interface that objects that download air pressure readings has to implement.
Public interfaceIAirPressureLookup
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.
Public interfaceIAirPressureManager
The interface that objects that manage the downloading of air pressure readings has to implement.
Public interfaceIApplicationInformation
The interface for objects that can expose information about the application.
Public interfaceIAudio
The interface for objects that can generate audio.
Public interfaceIAutoConfigPictureFolderCache
The interface for a singleton object that can automatically apply the picture folder name from the configuration to an IDirectoryCache.
Public interfaceCode exampleIBackgroundThreadExceptionCatcher
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.
Public interfaceIBackgroundWorker
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.
Public interfaceIBitStream
The interface for classes that can take an array of bytes and stream bits from that byte array.
Public interfaceICallsignParser
The interface for an object that can parse a callsign.
Public interfaceIClock
The interface for an object that abstracts away the clock.
Public interfaceIConnectionLogger
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.
Public interfaceIDirectoryCache
The interface for objects that can cache the filenames in a folder.
Public interfaceIDirectoryCacheProvider
The interface for the object that abstracts away the environment for IDirectoryCache implementations.
Public interfaceIDirectoryCacheProviderFileInfo
The interface for an object that exposes information about a file.
Public interfaceIExceptionReporter
The interface for objects that can report exceptions.
Public interfaceIExternalIPAddressService
The interface for objects that find out the external IP address of the user.
Public interfaceIExternalIPAddressServiceProvider
The object that abstracts away the environment for tests on IExternalIPAddressService.
Public interfaceIHeartbeatService
A service that raises an event on a background thread every so-many minutes.
Public interfaceIImageDimensionsFetcher
The interface for an object that can determine the dimensions of an image stored in an image file.
Public interfaceIImageFileManager
Manages access to images stored on disk.
Public interfaceCode exampleILog
The interface for objects that can manage log files for us.
Public interfaceILogProvider
The interface for objects that abstract away the environment for ILog implementations.
Public interfaceIMessageBox
The interface for an object that can show a modal message to the user.
Public interfaceINewVersionChecker
The interface for objects that can check with the VirtualRadarServer website to see whether a new version is available for download.
Public interfaceINewVersionCheckerProvider
The interface for providers that abstract away parts of the environment for testing.
Public interfaceIPlugin
Describes the interface for a class that plugin DLLs must implement in order to be loaded by Virtual Radar Server.
Public interfaceIPluginManager
The interface for the object that manages plugins on behalf of the program.
Public interfaceIPluginManagerProvider
The interface for objects that abstract away the environment for IPluginManager implementations.
Public interfaceIQueue
The interface for queues that can be interrogated to find out how many items they are holding.
Public interfaceIRuntimeEnvironment
The interface for singleton objects that can tell the program about the environment it's running under.
Public interfaceISimpleAircraftList
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.
Public interfaceCode exampleISingletonT
Declares that the interface this is implemented by is intended to be used as a singleton.
Public interfaceISpeechSynthesizerWrapper
The interface for a wrapper around the .NET SpeechSynthesizer class.
Public interfaceIStandaloneAircraftOnlineLookupCache
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.
Public interfaceIStatistics
A class that records various statistics.
Public interfaceITimer
The interface for objects that periodically raise an event.
Public interfaceIWeakEventHandlerE
The interface for event handlers that can hold a weak reference to a target.
Public interfaceIXmlSerialiser
The interface for objects that can serialise objects to XML and deserialise objects from XML.
Delegates
  DelegateDescription
Public delegateUnregisterCallbackE
The delegate for a method that will automatically unregister an event handler when the owning object is garbage collected.
Enumerations
  EnumerationDescription
Public enumerationAircraftListSource
An enumeration of the different sources that aircraft lists can come from.
Public enumerationAltitudeType
The different types of altitude and vertical rate decoded by VRS.
Public enumerationBackgroundThreadQueueMechanism
An enumeration of the different mechanisms that the BackgroundThreadQueue can use.
Public enumerationCertainty
An enumeration of the different desgrees of certainty the program has regarding the sanity of a value.
Public enumerationDistanceUnit
An enumeration of the different distance units that the website can display.
Public enumerationFilterCondition
An enumeration of the different conditions that a value can be filtered on.
Public enumerationHeightUnit
An enumeration of the different heights that the web site knows about.
Public enumerationSpeedType
An enumeration of the different types of speed transmitted by a vehicle. This enumeration is duplicated within the Javascript, hence the explicit declarations. Any changes here need copying there.
Public enumerationSpeedUnit
An enumeration of the different speed units that the web site can deal with.
Public enumerationTransponderType
An enumeration of the different types of transponder that VRS can decode messages from.
Remarks

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.