Class TimerFactoryImpl

    • Field Detail

      • conToInt

        private java.util.Map<Controllable,​java.lang.Integer> conToInt
      • intToCon

        private java.util.Map<java.lang.Integer,​Controllable> intToCon
      • nextIndex

        private int nextIndex
      • timers

        private java.util.Map<java.lang.String,​TimerImpl> timers
      • roTimers

        private java.util.Map<java.lang.String,​TimerImpl> roTimers
      • timerGroups

        private java.util.Map<java.lang.String,​TimerGroupImpl> timerGroups
      • roTimerGroups

        private java.util.Map<java.lang.String,​TimerGroupImpl> roTimerGroups
      • timerEventHandlers

        private java.util.Map<java.lang.String,​TimerEventHandler> timerEventHandlers
    • Constructor Detail

      • TimerFactoryImpl

        public TimerFactoryImpl​(ObjectRegistrationManager orm,
                                java.lang.String name,
                                java.lang.String description)
    • Method Detail

      • checkArgs

        private void checkArgs​(java.util.Set<java.lang.String> inUse,
                               java.lang.String name,
                               java.lang.String description)
      • numberOfIds

        public int numberOfIds()
        Description copied from interface: TimerFactory
        Returns the maximum id used by this TimerFactory for creating Controllables. The value of con.id() for any Controllable created by this TimerFactory always ranges from 0 inclusive to numberOfIds() exclusive.
        Specified by:
        numberOfIds in interface TimerFactory
      • getControllable

        public Controllable getControllable​(int id)
        Description copied from interface: TimerFactory
        Returns the Controllable corresponding to id, for id in the range 0 (inclusive) to numberOfIds() (exclusive).
        Specified by:
        getControllable in interface TimerFactory
      • makeLogEventHandler

        public LogEventHandler makeLogEventHandler​(java.lang.String name)
        Description copied from interface: TimerFactory
        Create a new LogEventHandler. All LogEventHandler names must be unique within the same TimerFactory.
        Specified by:
        makeLogEventHandler in interface TimerFactory
      • makeStatsEventHandler

        public StatsEventHandler makeStatsEventHandler​(java.lang.String name)
        Description copied from interface: TimerFactory
        Create a new StatsEventHandler. A StatsEventHandler records running statistics for all enter/exit pairs until it is cleared, at which point it starts over. It will keep data separated for each thread, combining information correctly from multiple threads. All StatsEventHandler names must be unique within the same TimerFactory. This StatsEventHandler must be used from a single thread.
        Specified by:
        makeStatsEventHandler in interface TimerFactory
      • makeMultiThreadedStatsEventHandler

        public StatsEventHandler makeMultiThreadedStatsEventHandler​(java.lang.String name)
        Description copied from interface: TimerFactory
        Create a new StatsEventHandler. A StatsEventHandler records running statistics for all enter/exit pairs until it is cleared, at which point it starts over. It will keep data separated for each thread, combining information correctly from multiple threads. All StatsEventHandler names must be unique within the same TimerFactory. This StatsEventHandler is multi-thread safe.
        Specified by:
        makeMultiThreadedStatsEventHandler in interface TimerFactory
      • makeTimer

        public Timer makeTimer​(java.lang.String name,
                               java.lang.String description)
        Description copied from interface: TimerFactory
        Create a new Timer. Note that Timers cannot be destroyed, other than by garbage collecting the TimerFactory that created them.
        Specified by:
        makeTimer in interface TimerFactory
      • timers

        public java.util.Map<java.lang.String,​TimerImpl> timers()
        Description copied from interface: TimerFactory
        Returns a read-only map from Timer names to Timers.
        Specified by:
        timers in interface TimerFactory
      • makeTimerGroup

        public TimerGroup makeTimerGroup​(java.lang.String name,
                                         java.lang.String description)
        Description copied from interface: TimerFactory
        Create a new TimerGroup. Note that TimerGroups cannot be destroyed, other than by garbage collecting the TimerFactory that created them.
        Specified by:
        makeTimerGroup in interface TimerFactory
      • timerGroups

        public java.util.Map<java.lang.String,​TimerGroupImpl> timerGroups()
        Description copied from interface: TimerFactory
        Returns a read-only map from TimerGroup names to TimerGroups.
        Specified by:
        timerGroups in interface TimerFactory
      • makeController

        public TimerEventController makeController​(java.lang.String name)
        Description copied from interface: TimerFactory
        Create a TimerController, which can create TimerEvents and send them to registered TimerEventHandlers.
        Specified by:
        makeController in interface TimerFactory
      • enabledSet

        public java.util.Set<? extends Controllable> enabledSet()
        Description copied from interface: TimerFactory
        Returns a read-only view of the set of enabled Controllables. These have been explicitly enabled via a call to enable().
        Specified by:
        enabledSet in interface TimerFactory
      • activeSet

        public java.util.Set<Timer> activeSet()
        Description copied from interface: TimerFactory
        Returns a read-only view of the set of Controllables that are currently active. An enabled Timer is active. All Controllables contained in an active or enabled TimerGroup are active.
        Specified by:
        activeSet in interface TimerFactory
      • updateActivation

        void updateActivation()
      • timerAlreadyExists

        public boolean timerAlreadyExists​(java.lang.String name)
        Description copied from interface: TimerFactory
        Return true iff a timer with the given name already exists.
        Specified by:
        timerAlreadyExists in interface TimerFactory