Classes

The following classes are available globally.

  • A class for candidate measurement objects. Each candidate has a dispersion associated with it. This dispersion increases with time. If at a particular time T, the candidate’s dispersion > MAX_TOLERABLE_DISPERSION, then the candidate is no longer useful and should be filtered out.

    See more

    Declaration

    Objective-C

    @interface Candidate

    Swift

    class Candidate
  • This class implements the WallClock protocol’s Candidate measurement processing functionality. Candidate mesaurements received by the WCClient object are enqueued in the CandidateSink object for processing. A thread in this class services this queue; it takes a Candidate measurement, passes it through a number of filters (See IFilter.h) and if the measurement survives the filtering process, it then submit it to a WC algorithm object (See IWCAlgo.h) for WC offset and dispersion calculation.

    See more

    Declaration

    Objective-C

    @interface CandidateSink : NSObject <ICandidateHandler>

    Swift

    class CandidateSink : NSObject, ICandidateHandler
  • Algorithm that selects the candidate (request-response measurement result) with the lowest dispersion.

    Dispersion is a formal measure of the error bounds of the Wall Clock estimate. This value is the sum of possible error due to:

      - measurement precision limitations (at both client and server)
      - round-trip time
      - maximum potential for oscillator frequency error at the client and at the server server
    

    This grows as the candidate (that was used to most recently adjust the clock) ages.

    Note: The Clock object must be the same one that is provided to the WallClockClient, otherwise this algorithm will not synchronise correctly.

    The tick rate of the Clock can be any tick rate (it does not have to be one tick per nanosecond), but too low a tick rate will limit clock synchronisation precision.

    See more

    Declaration

    Objective-C

    @interface LowestDispersionAlgorithm : NSObject <IWCAlgo>

    Swift

    class LowestDispersionAlgorithm : NSObject, IWCAlgo
  • Simple filter that will reject a candidate unless its dispersion is lower than any candidate seen previously.

    See more

    Declaration

    Objective-C

    @interface LowestDispersionFilter : NSObject <IFilter>

    Swift

    class LowestDispersionFilter : NSObject, IFilter
  • Simple filter that rejects all candidates where round trip time exceeds a specified threshold.

    See more

    Declaration

    Objective-C

    @interface RTTThresholdFilter : NSObject <IFilter>

    Swift

    class RTTThresholdFilter : NSObject, IFilter
  • A class implementing the client-side (Companion app) functionality of the DVB-CSS WallClock protocol. This client reads time values from the wall clock and uses it to initialise a WallClock protocol request message before sending the message to the WallClock server. Upon reception of the WallClock response, it creates a Candidate measurement object which is then passed on to the CandidateSink object for further processing.

    The CandidateSink object reads candidate measurements, calculate the wallclock offset (between the protocol client’s wallclock and the protocol server’s wallclock) and readjusts the local wallclock with the offset. With this approach, the WallClockClient component, uses a feedback loop to submit new originate_timevalue timestamps, calculate the wallclock offset and readjust the WallClock time based on this offset.

    See more

    Declaration

    Objective-C

    @interface WCProtocolClient : NSObject

    Swift

    class WCProtocolClient : NSObject
  • A class that provides helper functions to build and parse Wall Clock protocol request/response messages

    See more

    Declaration

    Objective-C

    @interface WCSyncMessage : NSObject

    Swift

    class WCSyncMessage : NSObject
  • A configurator component to setup all the sub-components for a WallClock time synchronisation.

    To perform WallClock time synchronisation, the following components are required:

    1. A WallClock server’s host address and port number

    2. A local WallClock that will be synchronised.In this implementation, the same WallClock in used to timestamp WC protocol messages.

    3. A WC protocol client (WCProtocolClient object) to send WC requests and receive WC responses. On reception of WC response messages, the WCProtocolClient object creates a Candidate measurement object and submits it to a CandidateSink object for further proccesing.

    4. A Candidate measurement handler object of the type CandidateSink.

    5. An algorithm object to process Candidates and readjust the local WallClock’s offset. WC algorithms must conform to the IWCAlgo protocol.

    6. A list of filters (IFilter-conforming instances) to reject unsuitable Candidates e.g. a candidates with an RTT that exceeds a specified threshold.

    The WCProtocolClient and CandidateSink components are loaded by the configurator. The algorithm and filter list have to be specified by the user when the configurator WallClockClientComponent is initialised.

    See more

    Declaration

    Objective-C

    @interface WallClockSynchroniser : NSObject

    Swift

    class WallClockSynchroniser : NSObject