Package com.castlabs.sdk.debug
Class RateLimitTracer
- java.lang.Object
-
- com.castlabs.sdk.debug.RateLimitTracer
-
public class RateLimitTracer extends Object
Rate limit tracer that can update a race limiter according to a list of traces.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRateLimitTracer.TraceA single download trace with a start and end time.
-
Constructor Summary
Constructors Constructor Description RateLimitTracer(RateLimiter rateLimiter, List<RateLimitTracer.Trace> data)Create a new tracerRateLimitTracer(RateLimiter rateLimiter, List<RateLimitTracer.Trace> data, com.google.android.exoplayer2.util.Clock clock)Create a new tracer
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RateLimitTracercreate(RateLimiter rateLimiter, InputStream traceData)Create a new rate limit tracer that, once started, will update the give rate limiterlonggetAvgBitrate()longgetMaxBitrate()longgetMinBitrate()longgetRate()Get the current ratelonggetTimeInTrace()longgetTraceDurationMs()Get the total duration of the traceslonggetTraceEndTime(RateLimitTracer.Trace trace)Get the adjusted end time for a traceList<RateLimitTracer.Trace>getTraces()Get a view on the traceslonggetTraceStartTime(RateLimitTracer.Trace trace)The adjusted start time for a tracevoidstart()Start the tracervoidstop()Stop the tracer
-
-
-
Constructor Detail
-
RateLimitTracer
public RateLimitTracer(RateLimiter rateLimiter, List<RateLimitTracer.Trace> data)
Create a new tracer- Parameters:
rateLimiter- The rate limiter that will be updateddata- The trace data
-
RateLimitTracer
public RateLimitTracer(RateLimiter rateLimiter, List<RateLimitTracer.Trace> data, com.google.android.exoplayer2.util.Clock clock)
Create a new tracer- Parameters:
rateLimiter- The rate limiter that will be updateddata- The trace dataclock- The clock
-
-
Method Detail
-
start
public void start()
Start the tracer
-
stop
public void stop()
Stop the tracer
-
getTraceEndTime
public long getTraceEndTime(RateLimitTracer.Trace trace)
Get the adjusted end time for a trace- Parameters:
trace- The trace- Returns:
- The adjusted end time
-
getTraceStartTime
public long getTraceStartTime(RateLimitTracer.Trace trace)
The adjusted start time for a trace- Parameters:
trace- The trace- Returns:
- The adjusted start time for a trace
-
getTimeInTrace
public long getTimeInTrace()
- Returns:
- The current time within the trace range, i.e 0 to trace-duration
-
getRate
public long getRate()
Get the current rate- Returns:
- The current rate
-
create
public static RateLimitTracer create(RateLimiter rateLimiter, InputStream traceData) throws IOException
Create a new rate limit tracer that, once started, will update the give rate limiter- Parameters:
rateLimiter- The rate limitertraceData- The trace data- Returns:
- The rate tracer
- Throws:
IOException- in case an error occurs while the input stream is loaded
-
getTraces
public List<RateLimitTracer.Trace> getTraces()
Get a view on the traces- Returns:
- The traces
-
getTraceDurationMs
public long getTraceDurationMs()
Get the total duration of the traces- Returns:
- the duration of the traces
-
getMinBitrate
public long getMinBitrate()
- Returns:
- The min bitrate of the traces
-
getMaxBitrate
public long getMaxBitrate()
- Returns:
- The max bitrate of the traces
-
getAvgBitrate
public long getAvgBitrate()
- Returns:
- The average bitrate of the traces
-
-