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 classTimerFactoryImpl.TracingEventHandler
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<Controllable,java.lang.Integer>conToIntprivate java.util.Map<java.lang.Integer,Controllable>intToConprivate intnextIndexprivate ObjectRegistrationManagerormprivate java.util.Map<java.lang.String,TimerGroupImpl>roTimerGroupsprivate java.util.Map<java.lang.String,TimerImpl>roTimersprivate java.util.Map<java.lang.String,TimerEventControllerBase>timerEventControllersprivate java.util.Map<java.lang.String,TimerEventHandler>timerEventHandlersprivate java.util.Map<java.lang.String,TimerGroupImpl>timerGroupsprivate 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 voidcheckArgs(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.ControllablegetControllable(int id)Returns the Controllable corresponding to id, for id in the range 0 (inclusive) to numberOfIds() (exclusive).TimerEventControllermakeController(java.lang.String name)Create a TimerController, which can create TimerEvents and send them to registered TimerEventHandlers.LogEventHandlermakeLogEventHandler(java.lang.String name)Create a new LogEventHandler.StatsEventHandlermakeMultiThreadedStatsEventHandler(java.lang.String name)Create a new StatsEventHandler.StatsEventHandlermakeStatsEventHandler(java.lang.String name)Create a new StatsEventHandler.TimermakeTimer(java.lang.String name, java.lang.String description)Create a new Timer.TimerGroupmakeTimerGroup(java.lang.String name, java.lang.String description)Create a new TimerGroup.TimerEventHandlermakeTracingEventHandler(java.lang.String name)private voidmapId(Controllable con)intnumberOfIds()Returns the maximum id used by this TimerFactory for creating Controllables.voidremoveController(TimerEventControllerBase controller)Remove the controller from this factory.voidremoveTimerEventHandler(TimerEventHandler handler)Remove the handler from this TimerFactory.voidsaveTimerEventController(TimerEventControllerBase tec)booleantimerAlreadyExists(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) voidupdateActivation()-
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:TimerFactoryReturns 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:
numberOfIdsin interfaceTimerFactory
-
getControllable
public Controllable getControllable(int id)
Description copied from interface:TimerFactoryReturns the Controllable corresponding to id, for id in the range 0 (inclusive) to numberOfIds() (exclusive).- Specified by:
getControllablein interfaceTimerFactory
-
makeTracingEventHandler
public TimerEventHandler makeTracingEventHandler(java.lang.String name)
- Specified by:
makeTracingEventHandlerin interfaceTimerFactory
-
makeLogEventHandler
public LogEventHandler makeLogEventHandler(java.lang.String name)
Description copied from interface:TimerFactoryCreate a new LogEventHandler. All LogEventHandler names must be unique within the same TimerFactory.- Specified by:
makeLogEventHandlerin interfaceTimerFactory
-
makeStatsEventHandler
public StatsEventHandler makeStatsEventHandler(java.lang.String name)
Description copied from interface:TimerFactoryCreate 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:
makeStatsEventHandlerin interfaceTimerFactory
-
makeMultiThreadedStatsEventHandler
public StatsEventHandler makeMultiThreadedStatsEventHandler(java.lang.String name)
Description copied from interface:TimerFactoryCreate 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:
makeMultiThreadedStatsEventHandlerin interfaceTimerFactory
-
removeTimerEventHandler
public void removeTimerEventHandler(TimerEventHandler handler)
Description copied from interface:TimerFactoryRemove the handler from this TimerFactory. The handler should not be used after this call.- Specified by:
removeTimerEventHandlerin interfaceTimerFactory
-
makeTimer
public Timer makeTimer(java.lang.String name, java.lang.String description)
Description copied from interface:TimerFactoryCreate a new Timer. Note that Timers cannot be destroyed, other than by garbage collecting the TimerFactory that created them.- Specified by:
makeTimerin interfaceTimerFactory
-
timers
public java.util.Map<java.lang.String,TimerImpl> timers()
Description copied from interface:TimerFactoryReturns a read-only map from Timer names to Timers.- Specified by:
timersin interfaceTimerFactory
-
makeTimerGroup
public TimerGroup makeTimerGroup(java.lang.String name, java.lang.String description)
Description copied from interface:TimerFactoryCreate a new TimerGroup. Note that TimerGroups cannot be destroyed, other than by garbage collecting the TimerFactory that created them.- Specified by:
makeTimerGroupin interfaceTimerFactory
-
timerGroups
public java.util.Map<java.lang.String,TimerGroupImpl> timerGroups()
Description copied from interface:TimerFactoryReturns a read-only map from TimerGroup names to TimerGroups.- Specified by:
timerGroupsin interfaceTimerFactory
-
saveTimerEventController
public void saveTimerEventController(TimerEventControllerBase tec)
-
makeController
public TimerEventController makeController(java.lang.String name)
Description copied from interface:TimerFactoryCreate a TimerController, which can create TimerEvents and send them to registered TimerEventHandlers.- Specified by:
makeControllerin interfaceTimerFactory
-
removeController
public void removeController(TimerEventControllerBase controller)
Description copied from interface:TimerFactoryRemove the controller from this factory. The controller should not be used after this call.- Specified by:
removeControllerin interfaceTimerFactory
-
enabledSet
public java.util.Set<? extends Controllable> enabledSet()
Description copied from interface:TimerFactoryReturns a read-only view of the set of enabled Controllables. These have been explicitly enabled via a call to enable().- Specified by:
enabledSetin interfaceTimerFactory
-
activeSet
public java.util.Set<Timer> activeSet()
Description copied from interface:TimerFactoryReturns 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:
activeSetin interfaceTimerFactory
-
updateActivation
void updateActivation()
-
timerAlreadyExists
public boolean timerAlreadyExists(java.lang.String name)
Description copied from interface:TimerFactoryReturn true iff a timer with the given name already exists.- Specified by:
timerAlreadyExistsin interfaceTimerFactory
-
-