Package org.glassfish.pfl.tf.timer.impl
Class TimerFactoryImpl
- java.lang.Object
-
- org.glassfish.pfl.tf.timer.spi.NamedBase
-
- org.glassfish.pfl.tf.timer.impl.NamedBaseImpl
-
- org.glassfish.pfl.tf.timer.impl.ControllableBase
-
- org.glassfish.pfl.tf.timer.impl.TimerGroupImpl
-
- org.glassfish.pfl.tf.timer.impl.TimerFactoryImpl
-
- All Implemented Interfaces:
Controllable
,Named
,TimerFactory
,TimerGroup
public class TimerFactoryImpl extends TimerGroupImpl implements TimerFactory
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TimerFactoryImpl.TracingEventHandler
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<Controllable,java.lang.Integer>
conToInt
private java.util.Map<java.lang.Integer,Controllable>
intToCon
private int
nextIndex
private ObjectRegistrationManager
orm
private java.util.Map<java.lang.String,TimerGroupImpl>
roTimerGroups
private java.util.Map<java.lang.String,TimerImpl>
roTimers
private java.util.Map<java.lang.String,TimerEventControllerBase>
timerEventControllers
private java.util.Map<java.lang.String,TimerEventHandler>
timerEventHandlers
private java.util.Map<java.lang.String,TimerGroupImpl>
timerGroups
private java.util.Map<java.lang.String,TimerImpl>
timers
-
Constructor Summary
Constructors Constructor Description TimerFactoryImpl(ObjectRegistrationManager orm, java.lang.String name, java.lang.String description)
-
Method Summary
All Methods Instance Methods Concrete 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.private void
checkArgs(java.util.Set<java.lang.String> inUse, java.lang.String name, java.lang.String description)
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)
private void
mapId(Controllable con)
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.void
saveTimerEventController(TimerEventControllerBase tec)
boolean
timerAlreadyExists(java.lang.String name)
Return true iff a timer with the given name already exists.java.util.Map<java.lang.String,TimerGroupImpl>
timerGroups()
Returns a read-only map from TimerGroup names to TimerGroups.java.util.Map<java.lang.String,TimerImpl>
timers()
Returns a read-only map from Timer names to Timers.(package private) void
updateActivation()
-
Methods inherited from class org.glassfish.pfl.tf.timer.impl.TimerGroupImpl
add, contents, remove, tcContents
-
Methods inherited from class org.glassfish.pfl.tf.timer.impl.ControllableBase
description, description, disable, enable, id, isEnabled, transitiveClosure
-
Methods inherited from class org.glassfish.pfl.tf.timer.impl.NamedBaseImpl
factory
-
Methods inherited from class org.glassfish.pfl.tf.timer.spi.NamedBase
equals, hashCode, name, setFactory, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
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
-
-
-
-
Field Detail
-
orm
private ObjectRegistrationManager orm
-
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
-
timerEventControllers
private java.util.Map<java.lang.String,TimerEventControllerBase> timerEventControllers
-
-
Constructor Detail
-
TimerFactoryImpl
public TimerFactoryImpl(ObjectRegistrationManager orm, java.lang.String name, java.lang.String description)
-
-
Method Detail
-
mapId
private void mapId(Controllable con)
-
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 interfaceTimerFactory
-
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 interfaceTimerFactory
-
makeTracingEventHandler
public TimerEventHandler makeTracingEventHandler(java.lang.String name)
- Specified by:
makeTracingEventHandler
in interfaceTimerFactory
-
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 interfaceTimerFactory
-
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 interfaceTimerFactory
-
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 interfaceTimerFactory
-
removeTimerEventHandler
public void removeTimerEventHandler(TimerEventHandler handler)
Description copied from interface:TimerFactory
Remove the handler from this TimerFactory. The handler should not be used after this call.- Specified by:
removeTimerEventHandler
in interfaceTimerFactory
-
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 interfaceTimerFactory
-
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 interfaceTimerFactory
-
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 interfaceTimerFactory
-
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 interfaceTimerFactory
-
saveTimerEventController
public void saveTimerEventController(TimerEventControllerBase tec)
-
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 interfaceTimerFactory
-
removeController
public void removeController(TimerEventControllerBase controller)
Description copied from interface:TimerFactory
Remove the controller from this factory. The controller should not be used after this call.- Specified by:
removeController
in interfaceTimerFactory
-
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 interfaceTimerFactory
-
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 interfaceTimerFactory
-
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 interfaceTimerFactory
-
-