Package org.glassfish.pfl.tf.timer.spi
Interface TimerFactory
-
- All Superinterfaces:
Controllable
,Named
,TimerGroup
- All Known Implementing Classes:
TimerFactoryImpl
public interface TimerFactory extends TimerGroup
Factory class for all Timer-related objects. TimerFactory is also a TimerGroup of all timers and timer groups that it creates.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.util.Set<Timer>
activeSet()
Returns a read-only view of the set of Controllables that are currently active.java.util.Set<? extends Controllable>
enabledSet()
Returns a read-only view of the set of enabled Controllables.Controllable
getControllable(int id)
Returns the Controllable corresponding to id, for id in the range 0 (inclusive) to numberOfIds() (exclusive).TimerEventController
makeController(java.lang.String name)
Create a TimerController, which can create TimerEvents and send them to registered TimerEventHandlers.LogEventHandler
makeLogEventHandler(java.lang.String name)
Create a new LogEventHandler.StatsEventHandler
makeMultiThreadedStatsEventHandler(java.lang.String name)
Create a new StatsEventHandler.StatsEventHandler
makeStatsEventHandler(java.lang.String name)
Create a new StatsEventHandler.Timer
makeTimer(java.lang.String name, java.lang.String description)
Create a new Timer.TimerGroup
makeTimerGroup(java.lang.String name, java.lang.String description)
Create a new TimerGroup.TimerEventHandler
makeTracingEventHandler(java.lang.String name)
int
numberOfIds()
Returns the maximum id used by this TimerFactory for creating Controllables.void
removeController(TimerEventControllerBase controller)
Remove the controller from this factory.void
removeTimerEventHandler(TimerEventHandler handler)
Remove the handler from this TimerFactory.boolean
timerAlreadyExists(java.lang.String name)
Return true iff a timer with the given name already exists.java.util.Map<java.lang.String,? extends TimerGroup>
timerGroups()
Returns a read-only map from TimerGroup names to TimerGroups.java.util.Map<java.lang.String,? extends Timer>
timers()
Returns a read-only map from Timer names to Timers.-
Methods inherited from interface org.glassfish.pfl.tf.timer.spi.Controllable
contents, description, disable, enable, id, isEnabled
-
Methods inherited from interface org.glassfish.pfl.tf.timer.spi.TimerGroup
add, remove
-
-
-
-
Method Detail
-
numberOfIds
int numberOfIds()
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.
-
getControllable
Controllable getControllable(int id)
Returns the Controllable corresponding to id, for id in the range 0 (inclusive) to numberOfIds() (exclusive).- Throws:
java.lang.IndexOutOfBoundsException
- if id is not in range.
-
makeLogEventHandler
LogEventHandler makeLogEventHandler(java.lang.String name)
Create a new LogEventHandler. All LogEventHandler names must be unique within the same TimerFactory.
-
makeTracingEventHandler
TimerEventHandler makeTracingEventHandler(java.lang.String name)
-
makeStatsEventHandler
StatsEventHandler makeStatsEventHandler(java.lang.String name)
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.
-
makeMultiThreadedStatsEventHandler
StatsEventHandler makeMultiThreadedStatsEventHandler(java.lang.String name)
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.
-
removeTimerEventHandler
void removeTimerEventHandler(TimerEventHandler handler)
Remove the handler from this TimerFactory. The handler should not be used after this call.
-
makeTimer
Timer makeTimer(java.lang.String name, java.lang.String description)
Create a new Timer. Note that Timers cannot be destroyed, other than by garbage collecting the TimerFactory that created them.
-
timers
java.util.Map<java.lang.String,? extends Timer> timers()
Returns a read-only map from Timer names to Timers.
-
makeTimerGroup
TimerGroup makeTimerGroup(java.lang.String name, java.lang.String description)
Create a new TimerGroup. Note that TimerGroups cannot be destroyed, other than by garbage collecting the TimerFactory that created them.
-
timerGroups
java.util.Map<java.lang.String,? extends TimerGroup> timerGroups()
Returns a read-only map from TimerGroup names to TimerGroups.
-
makeController
TimerEventController makeController(java.lang.String name)
Create a TimerController, which can create TimerEvents and send them to registered TimerEventHandlers.
-
removeController
void removeController(TimerEventControllerBase controller)
Remove the controller from this factory. The controller should not be used after this call.
-
enabledSet
java.util.Set<? extends Controllable> enabledSet()
Returns a read-only view of the set of enabled Controllables. These have been explicitly enabled via a call to enable().
-
activeSet
java.util.Set<Timer> activeSet()
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.
-
timerAlreadyExists
boolean timerAlreadyExists(java.lang.String name)
Return true iff a timer with the given name already exists.
-
-