Package co.aikar.timings

# Interface Timing

All Superinterfaces:
  `AutoCloseable`

All Known Implementing Classes:
  `FullServerTickHandler`, `NullTimingHandler`

public interface Timing extends AutoCloseable
Provides an ability to time sections of code within the Minecraft Server

## Method Summary

Modifier and Type
Method
Description
`void`
`abort()`
Deprecated.
Doesn't do anything - Removed
`void`
`close()`
`@Nullable co.aikar.timings.TimingHandler`
`getTimingHandler()`
Used internally to get the actual backing Handler in the case of delegated Handlers
`@NotNull Timing`
`startTiming()`
Starts timing the execution until `stopTiming()` is called.
`@NotNull Timing`
`startTimingIfSync()`
Starts timing the execution until `stopTiming()` is called.
`void`
`stopTiming()`
Stops timing and records the data.
`void`
`stopTimingIfSync()`
Stops timing and records the data.

## Method Details

### startTiming

@NotNull @NotNull Timing startTiming()
Starts timing the execution until `stopTiming()` is called.

Returns:
  Timing

### stopTiming

void stopTiming()

Stops timing and records the data. Propagates the data up to group handlers.

Will automatically be called when this Timing is used with try-with-resources

### startTimingIfSync

@NotNull @NotNull Timing startTimingIfSync()
Starts timing the execution until `stopTiming()` is called. But only if we are on the primary thread.

Returns:
  Timing

### stopTimingIfSync

void stopTimingIfSync()

Stops timing and records the data. Propagates the data up to group handlers.

Will automatically be called when this Timing is used with try-with-resources

But only if we are on the primary thread.

### abort

@Deprecated void abort()
Deprecated.
Doesn't do anything - Removed

### getTimingHandler

@Nullable @Nullable co.aikar.timings.TimingHandler getTimingHandler()
Used internally to get the actual backing Handler in the case of delegated Handlers

Returns:
  TimingHandler

### close

void close()

Specified by:
  `close` in interface `AutoCloseable`