some chore

This commit is contained in:
Youmu Liu
2026-03-11 18:55:45 +08:00
parent c842f72934
commit 9b5dfec9d5
7 changed files with 313 additions and 32 deletions
+11 -4
View File
@@ -1,4 +1,4 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// -----------------------------------------------------------------------
// file="StgSharpTime"
// Project: StgSharp
@@ -54,7 +54,10 @@ namespace StgSharp
public static StgSharpTime OnlyInstance { get; } = new StgSharpTime();
public override long GetCurrentTimeSpanTick() => mainProvider.ElapsedTicks;
public override long GetCurrentTimeSpanTick()
{
return mainProvider.ElapsedTicks;
}
public sealed override void StartProvidingTime()
{
@@ -85,12 +88,16 @@ namespace StgSharp
}
}
protected sealed override void AddSubscriberUnsynced(TimeSpanProvider subscriber)
protected sealed override void AddSubscriberUnsynced(
TimeSpanProvider subscriber
)
{
_subscribers.Add(subscriber);
}
protected sealed override void RemoveSubscriberUnsynced(TimeSpanProvider subscriber)
protected sealed override void RemoveSubscriberUnsynced(
TimeSpanProvider subscriber
)
{
_subscribers.Remove(subscriber);
}
+20 -8
View File
@@ -63,8 +63,11 @@ namespace StgSharp.Common.Timing
double totalSeconds,
double growthMultiplier,
double minSliceSeconds
) => new LogTimeSequence(initialSliceSeconds, totalSeconds, growthMultiplier,
minSliceSeconds);
)
{
return new LogTimeSequence(initialSliceSeconds, totalSeconds, growthMultiplier,
minSliceSeconds);
}
public abstract bool EndsAt(
long currentTick
@@ -104,7 +107,10 @@ namespace StgSharp.Common.Timing
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public override bool EndsAt(
long currentTick
) => currentTick >= EndingTick;
)
{
return currentTick >= EndingTick;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public override bool IsNextFrameReady(
@@ -149,7 +155,7 @@ namespace StgSharp.Common.Timing
private double _nextBoundarySecondsAdjusted;
private readonly double _totalSeconds;
private int _sliceIndex;
private long _freq;
private long _frequency;
private long _nextBoundaryTick;
private long _totalTicks;
@@ -181,7 +187,7 @@ namespace StgSharp.Common.Timing
long currentTick
)
{
return currentTick >= EndingTick;
return currentTick >= EndingTick;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
@@ -239,7 +245,7 @@ namespace StgSharp.Common.Timing
TimeSourceProviderBase source
)
{
_freq = source?.Frequency ?? throw new ArgumentNullException(nameof(source));
_frequency = source?.Frequency ?? throw new ArgumentNullException(nameof(source));
BeginningTick = source.GetCurrentTimeSpanTick();
_totalTicks = SecondsToTicks(_totalSeconds);
EndingTick = BeginningTick + _totalTicks;
@@ -254,7 +260,10 @@ namespace StgSharp.Common.Timing
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private long SecondsToTicks(
double seconds
) => (long)Math.Max(1L, Math.Round(seconds * _freq, MidpointRounding.AwayFromZero));
)
{
return (long)Math.Max(1L, Math.Round(seconds * _frequency, MidpointRounding.AwayFromZero));
}
}
@@ -278,7 +287,10 @@ namespace StgSharp.Common.Timing
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public override bool EndsAt(
long currentTick
) => false; // never ends
)
{
return false; // never ends
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public override bool IsNextFrameReady(
+19 -10
View File
@@ -1,4 +1,4 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// -----------------------------------------------------------------------
// file="TimeSpanProvider"
// Project: StgSharp
@@ -40,7 +40,7 @@ namespace StgSharp.Timing
{
// private bool _subscribed;
private int _emittedSpanCount; // legacy counter
private readonly int _emittedSpanCount; // legacy counter
// internal ended flag (0 = running, 1 = ended)
private int _endedFlag;
@@ -50,7 +50,8 @@ namespace StgSharp.Timing
public TimeSpanProvider(
TimeSequence sequence,
TimeSourceProviderBase provider,
int maxWaitCount = 1)
int maxWaitCount = 1
)
{
ArgumentNullException.ThrowIfNull(provider);
ArgumentNullException.ThrowIfNull(sequence);
@@ -78,17 +79,25 @@ namespace StgSharp.Timing
/// <summary>
/// Current emitted time in seconds relative to the sequence beginning.
/// </summary>
public double CurrentSecond
{
get => (double)(_sequence.PreviousFrameTick - _sequence.BeginningTick) / _timeSource.Frequency;
}
public double CurrentSecond => (double)(_sequence.PreviousFrameTick - _sequence.BeginningTick) / _timeSource.Frequency;
public int CurrentSpan => _emittedSpanCount;
public static TimeSourceProviderBase DefaultProvider => World.MainTimeProvider;
public static explicit operator int(TimeSpanProvider provider) => provider?._emittedSpanCount ??
0;
public static int ToInt32(
TimeSpanProvider provider
)
{
return provider?._emittedSpanCount ?? 0;
}
public static explicit operator int(
TimeSpanProvider provider
)
{
return provider?._emittedSpanCount ?? 0;
}
}
}
}