Skip to content

Commit 1af82a7

Browse files
LehontiLehonti Ramos
and
Lehonti Ramos
authored
Sealed uninherited internal classes in Akka.Streams (#6932)
Co-authored-by: Lehonti Ramos <lehonti@ramos>
1 parent 9096347 commit 1af82a7

21 files changed

+41
-43
lines changed

src/core/Akka.Streams.Tests/Implementation/FixedBufferSpec.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,8 @@ public void FixedSizeBuffer_must_work_when_indexes_wrap_around_at_Int_MaxValue(i
164164
buf.Dequeue().Should().Be(elem);
165165
}
166166
}
167-
168-
private class CheatPowerOfTwoFixedSizeBuffer : PowerOfTwoFixedSizeBuffer<int>
167+
168+
private sealed class CheatPowerOfTwoFixedSizeBuffer : PowerOfTwoFixedSizeBuffer<int>
169169
{
170170
public CheatPowerOfTwoFixedSizeBuffer(int size) : base(size)
171171
{
@@ -174,7 +174,7 @@ public CheatPowerOfTwoFixedSizeBuffer(int size) : base(size)
174174
}
175175
}
176176

177-
private class CheatModuloFixedSizeBuffer : ModuloFixedSizeBuffer<int>
177+
private sealed class CheatModuloFixedSizeBuffer : ModuloFixedSizeBuffer<int>
178178
{
179179
public CheatModuloFixedSizeBuffer(int size) : base(size)
180180
{

src/core/Akka.Streams/Actors/ActorPublisher.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,7 @@ public OnErrorBlock(Exception cause, bool stop)
747747
/// <summary>
748748
/// TBD
749749
/// </summary>
750-
internal class ActorPublisherState : ExtensionIdProvider<ActorPublisherState>, IExtension
750+
internal sealed class ActorPublisherState : ExtensionIdProvider<ActorPublisherState>, IExtension
751751
{
752752
/// <summary>
753753
/// TBD

src/core/Akka.Streams/Dsl/Hub.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public ProducerFailed(string message, Exception cause) : base(message, cause)
8787
/// INTERNAL API
8888
/// </summary>
8989
/// <typeparam name="T">The type of element emitted by the MergeHub</typeparam>
90-
internal class MergeHub<T> : GraphStageWithMaterializedValue<SourceShape<T>, Sink<T, NotUsed>>
90+
internal sealed class MergeHub<T> : GraphStageWithMaterializedValue<SourceShape<T>, Sink<T, NotUsed>>
9191
{
9292
#region Internal classes
9393

@@ -526,7 +526,7 @@ public static Sink<T, Source<T, NotUsed>> Sink<T>(int bufferSize)
526526
/// <summary>
527527
/// INTERNAL API
528528
/// </summary>
529-
internal class BroadcastHub<T> : GraphStageWithMaterializedValue<SinkShape<T>, Source<T, NotUsed>>
529+
internal sealed class BroadcastHub<T> : GraphStageWithMaterializedValue<SinkShape<T>, Source<T, NotUsed>>
530530
{
531531
#region internal classes
532532

@@ -1296,7 +1296,7 @@ public interface IConsumerInfo
12961296
/// <summary>
12971297
/// INTERNAL API
12981298
/// </summary>
1299-
internal class PartitionHub<T> : GraphStageWithMaterializedValue<SinkShape<T>, Source<T, NotUsed>>
1299+
internal sealed class PartitionHub<T> : GraphStageWithMaterializedValue<SinkShape<T>, Source<T, NotUsed>>
13001300
{
13011301
#region queue implementation
13021302

src/core/Akka.Streams/Dsl/Internal/InternalFlowOperations.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1421,7 +1421,7 @@ public static SubFlow<T, TMat, TClosed> GroupBy<T, TMat, TKey, TClosed>(
14211421
/// <typeparam name="TOut">TBD</typeparam>
14221422
/// <typeparam name="TMat">TBD</typeparam>
14231423
/// <typeparam name="TKey">TBD</typeparam>
1424-
internal class GroupByMergeBack<TOut, TMat, TKey> : IMergeBack<TOut, TMat>
1424+
internal sealed class GroupByMergeBack<TOut, TMat, TKey> : IMergeBack<TOut, TMat>
14251425
{
14261426
private readonly IFlow<TOut, TMat> _self;
14271427
private readonly int _maxSubstreams;
@@ -1539,7 +1539,7 @@ TClosed finish(Sink<T, TMat> s)
15391539
/// </summary>
15401540
/// <typeparam name="TOut">TBD</typeparam>
15411541
/// <typeparam name="TMat">TBD</typeparam>
1542-
internal class SplitWhenMergeBack<TOut, TMat> : IMergeBack<TOut, TMat>
1542+
internal sealed class SplitWhenMergeBack<TOut, TMat> : IMergeBack<TOut, TMat>
15431543
{
15441544
private readonly IFlow<TOut, TMat> _self;
15451545
private readonly Func<TOut, bool> _predicate;
@@ -1644,7 +1644,7 @@ TClosed finish(Sink<T, TMat> s)
16441644
/// </summary>
16451645
/// <typeparam name="TOut">TBD</typeparam>
16461646
/// <typeparam name="TMat">TBD</typeparam>
1647-
internal class SplitAfterMergeBack<TOut, TMat> : IMergeBack<TOut, TMat>
1647+
internal sealed class SplitAfterMergeBack<TOut, TMat> : IMergeBack<TOut, TMat>
16481648
{
16491649
private readonly IFlow<TOut, TMat> _self;
16501650
private readonly Func<TOut, bool> _predicate;

src/core/Akka.Streams/Dsl/RestartFlow.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -454,13 +454,13 @@ public Delay(TimeSpan duration)
454454
public override string ToString() => $"Duration({Duration})";
455455
}
456456
}
457-
457+
458458
/// <summary>
459459
/// Returns a flow that is almost identical but delays propagation of cancellation from downstream to upstream.
460460
/// Once the down stream is finished calls to onPush are ignored
461461
/// </summary>
462462
/// <typeparam name="T"></typeparam>
463-
internal class DelayCancellationStage<T> : SimpleLinearGraphStage<T>
463+
internal sealed class DelayCancellationStage<T> : SimpleLinearGraphStage<T>
464464
{
465465
private readonly TimeSpan _delay;
466466

src/core/Akka.Streams/Dsl/UnfoldFlow.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void OnDownstreamFinish(Exception cause)
7575
}
7676

7777
[InternalApi]
78-
internal class FanOut2UnfoldingStage<TIn, TState, TOut> : GraphStage<FanOutShape<TIn, TState, TOut>>
78+
internal sealed class FanOut2UnfoldingStage<TIn, TState, TOut> : GraphStage<FanOutShape<TIn, TState, TOut>>
7979
{
8080
private readonly Func<FanOutShape<TIn, TState, TOut>, UnfoldFlowGraphStageLogic<TIn, TState, TOut>> _generateGraphStageLogic;
8181

src/core/Akka.Streams/Implementation/ActorProcessor.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static ActorProcessor<TIn, TOut> Create<TIn, TOut>(IActorRef impl)
4141
/// </summary>
4242
/// <typeparam name="TIn">TBD</typeparam>
4343
/// <typeparam name="TOut">TBD</typeparam>
44-
internal class ActorProcessor<TIn, TOut> : ActorPublisher<TOut>, IProcessor<TIn, TOut>
44+
internal sealed class ActorProcessor<TIn, TOut> : ActorPublisher<TOut>, IProcessor<TIn, TOut>
4545
{
4646
/// <summary>
4747
/// TBD

src/core/Akka.Streams/Implementation/ActorRefBackpressureSinkStage.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace Akka.Streams.Implementation
1717
/// INTERNAL API
1818
/// </summary>
1919
/// <typeparam name="TIn">TBD</typeparam>
20-
internal class ActorRefBackpressureSinkStage<TIn> : GraphStage<SinkShape<TIn>>
20+
internal sealed class ActorRefBackpressureSinkStage<TIn> : GraphStage<SinkShape<TIn>>
2121
{
2222
#region internal classes
2323

src/core/Akka.Streams/Implementation/EnumerableActorName.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static EnumerableActorName Create(string prefix)
4141
/// <summary>
4242
/// TBD
4343
/// </summary>
44-
internal class EnumerableActorNameImpl : EnumerableActorName
44+
internal sealed class EnumerableActorNameImpl : EnumerableActorName
4545
{
4646
/// <summary>
4747
/// TBD

src/core/Akka.Streams/Implementation/Fusing/ActorGraphInterpreter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1149,7 +1149,7 @@ internal interface IActorOutputBoundary
11491149
/// TBD
11501150
/// </summary>
11511151
/// <typeparam name="T">TBD</typeparam>
1152-
internal class ActorOutputBoundary<T> : DownstreamBoundaryStageLogic, IActorOutputBoundary
1152+
internal sealed class ActorOutputBoundary<T> : DownstreamBoundaryStageLogic, IActorOutputBoundary
11531153
{
11541154
#region InHandler
11551155
private sealed class InHandler : Stage.InHandler

src/core/Akka.Streams/Implementation/Fusing/StreamOfStreams.cs

+3-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System;
99
using System.Collections.Generic;
1010
using System.Collections.Immutable;
11-
using Akka.Annotations;
1211
using Akka.Event;
1312
using Akka.Pattern;
1413
using Akka.Streams.Actors;
@@ -1000,7 +999,7 @@ internal interface IState
1000999
/// <summary>
10011000
/// Not yet materialized and no command has been scheduled
10021001
/// </summary>
1003-
internal class Uninitialized : IState
1002+
internal sealed class Uninitialized : IState
10041003
{
10051004
public static readonly Uninitialized Instance = new();
10061005

@@ -1025,7 +1024,7 @@ protected CommandScheduledBeforeMaterialization(ICommand command)
10251024
/// <summary>
10261025
/// A RequestOne command was scheduled before materialization
10271026
/// </summary>
1028-
internal class RequestOneScheduledBeforeMaterialization : CommandScheduledBeforeMaterialization
1027+
internal sealed class RequestOneScheduledBeforeMaterialization : CommandScheduledBeforeMaterialization
10291028
{
10301029
public static readonly RequestOneScheduledBeforeMaterialization Instance = new(RequestOne.Instance);
10311030

@@ -1054,7 +1053,7 @@ internal interface ICommand
10541053
{
10551054
}
10561055

1057-
internal class RequestOne : ICommand
1056+
internal sealed class RequestOne : ICommand
10581057
{
10591058
public static readonly RequestOne Instance = new();
10601059

src/core/Akka.Streams/Implementation/IO/FilePublisher.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ namespace Akka.Streams.Implementation.IO
2323
/// <summary>
2424
/// INTERNAL API
2525
/// </summary>
26-
internal class FilePublisher : Actors.ActorPublisher<ByteString>
26+
internal sealed class FilePublisher : Actors.ActorPublisher<ByteString>
2727
{
2828
/// <summary>
2929
/// TBD

src/core/Akka.Streams/Implementation/IO/FileSubscriber.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace Akka.Streams.Implementation.IO
2020
/// <summary>
2121
/// INTERNAL API
2222
/// </summary>
23-
internal class FileSubscriber : ActorSubscriber
23+
internal sealed class FileSubscriber : ActorSubscriber
2424
{
2525
/// <summary>
2626
/// TBD
@@ -208,7 +208,7 @@ private void CloseAndComplete(Try<IOResult> result)
208208
}
209209
}
210210

211-
internal class FlushSignal
211+
internal sealed class FlushSignal
212212
{
213213
public static readonly FlushSignal Instance = new();
214214
private FlushSignal() { }

src/core/Akka.Streams/Implementation/IO/InputStreamPublisher.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@
1313
using Akka.IO;
1414
using Akka.Streams.Actors;
1515
using Akka.Streams.IO;
16-
using Akka.Util;
1716

1817
namespace Akka.Streams.Implementation.IO
1918
{
2019
/// <summary>
2120
/// INTERNAL API
2221
/// </summary>
23-
internal class InputStreamPublisher : Actors.ActorPublisher<ByteString>
22+
internal sealed class InputStreamPublisher : Actors.ActorPublisher<ByteString>
2423
{
2524
/// <summary>
2625
/// TBD

src/core/Akka.Streams/Implementation/IO/InputStreamSinkStage.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace Akka.Streams.Implementation.IO
1919
/// <summary>
2020
/// INTERNAL API
2121
/// </summary>
22-
internal class InputStreamSinkStage : GraphStageWithMaterializedValue<SinkShape<ByteString>, Stream>
22+
internal sealed class InputStreamSinkStage : GraphStageWithMaterializedValue<SinkShape<ByteString>, Stream>
2323
{
2424
#region internal classes
2525

@@ -33,7 +33,7 @@ internal interface IAdapterToStageMessage
3333
/// <summary>
3434
/// TBD
3535
/// </summary>
36-
internal class ReadElementAcknowledgement : IAdapterToStageMessage
36+
internal sealed class ReadElementAcknowledgement : IAdapterToStageMessage
3737
{
3838
/// <summary>
3939
/// TBD
@@ -49,7 +49,7 @@ private ReadElementAcknowledgement()
4949
/// <summary>
5050
/// TBD
5151
/// </summary>
52-
internal class Close : IAdapterToStageMessage
52+
internal sealed class Close : IAdapterToStageMessage
5353
{
5454
/// <summary>
5555
/// TBD
@@ -92,7 +92,7 @@ public Data(ByteString bytes)
9292
/// <summary>
9393
/// TBD
9494
/// </summary>
95-
internal class Finished : IStreamToAdapterMessage
95+
internal sealed class Finished : IStreamToAdapterMessage
9696
{
9797
/// <summary>
9898
/// TBD
@@ -108,7 +108,7 @@ private Finished()
108108
/// <summary>
109109
/// TBD
110110
/// </summary>
111-
internal class Initialized : IStreamToAdapterMessage
111+
internal sealed class Initialized : IStreamToAdapterMessage
112112
{
113113
/// <summary>
114114
/// TBD
@@ -272,7 +272,7 @@ public override ILogicAndMaterializedValue<Stream> CreateLogicAndMaterializedVal
272272
/// INTERNAL API
273273
/// InputStreamAdapter that interacts with InputStreamSinkStage
274274
/// </summary>
275-
internal class InputStreamAdapter : Stream
275+
internal sealed class InputStreamAdapter : Stream
276276
{
277277
#region not supported
278278

src/core/Akka.Streams/Implementation/IO/OutputStreamSourceStage.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ namespace Akka.Streams.Implementation.IO
2323
/// <summary>
2424
/// INTERNAL API
2525
/// </summary>
26-
internal class OutputStreamSourceStage : GraphStageWithMaterializedValue<SourceShape<ByteString>, Stream>
26+
internal sealed class OutputStreamSourceStage : GraphStageWithMaterializedValue<SourceShape<ByteString>, Stream>
2727
{
2828
#region internal classes
2929

@@ -37,7 +37,7 @@ internal interface IAdapterToStageMessage
3737
/// <summary>
3838
/// TBD
3939
/// </summary>
40-
internal class Flush : IAdapterToStageMessage
40+
internal sealed class Flush : IAdapterToStageMessage
4141
{
4242
/// <summary>
4343
/// TBD
@@ -52,7 +52,7 @@ private Flush()
5252
/// <summary>
5353
/// TBD
5454
/// </summary>
55-
internal class Close : IAdapterToStageMessage
55+
internal sealed class Close : IAdapterToStageMessage
5656
{
5757
/// <summary>
5858
/// TBD
@@ -74,7 +74,7 @@ internal interface IDownstreamStatus
7474
/// <summary>
7575
/// TBD
7676
/// </summary>
77-
internal class Ok : IDownstreamStatus
77+
internal sealed class Ok : IDownstreamStatus
7878
{
7979
/// <summary>
8080
/// TBD
@@ -89,7 +89,7 @@ private Ok()
8989
/// <summary>
9090
/// TBD
9191
/// </summary>
92-
internal class Canceled : IDownstreamStatus
92+
internal sealed class Canceled : IDownstreamStatus
9393
{
9494
/// <summary>
9595
/// TBD
@@ -315,7 +315,7 @@ public override ILogicAndMaterializedValue<Stream> CreateLogicAndMaterializedVal
315315
/// <summary>
316316
/// TBD
317317
/// </summary>
318-
internal class OutputStreamAdapter : Stream
318+
internal sealed class OutputStreamAdapter : Stream
319319
{
320320
#region not supported
321321

src/core/Akka.Streams/Implementation/IO/OutputStreamSubscriber.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace Akka.Streams.Implementation.IO
1919
/// <summary>
2020
/// INTERNAL API
2121
/// </summary>
22-
internal class OutputStreamSubscriber : ActorSubscriber
22+
internal sealed class OutputStreamSubscriber : ActorSubscriber
2323
{
2424
/// <summary>
2525
/// TBD

src/core/Akka.Streams/Implementation/Sinks.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ protected SinkShape<TIn> AmendShape(Attributes attrs)
150150
/// </summary>
151151
/// <typeparam name="TIn">TBD</typeparam>
152152
[InternalApi]
153-
internal class PublisherSink<TIn> : SinkModule<TIn, IPublisher<TIn>>
153+
internal sealed class PublisherSink<TIn> : SinkModule<TIn, IPublisher<TIn>>
154154
{
155155
/// <summary>
156156
/// TBD

src/core/Akka.Streams/Implementation/Transfer.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ private NotInitialized()
303303
/// <summary>
304304
/// TBD
305305
/// </summary>
306-
internal class WaitingForUpstreamSubscription : TransferState
306+
internal sealed class WaitingForUpstreamSubscription : TransferState
307307
{
308308
/// <summary>
309309
/// TBD

src/core/Akka.Streams/Stage/AbstractStage.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace Akka.Streams.Stage
1616
/// </summary>
1717
/// <typeparam name="TIn">TBD</typeparam>
1818
/// <typeparam name="TOut">TBD</typeparam>
19-
internal class PushPullGraphLogic<TIn, TOut> : GraphStageLogic, IDetachedContext<TOut>
19+
internal sealed class PushPullGraphLogic<TIn, TOut> : GraphStageLogic, IDetachedContext<TOut>
2020
{
2121
#pragma warning disable CS0618 // Type or member is obsolete
2222
private AbstractStage<TIn, TOut> _currentStage;

src/core/Akka.Streams/Util/IteratorAdapter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ internal interface IIterator<out T>
3434
/// TBD
3535
/// </summary>
3636
/// <typeparam name="T">TBD</typeparam>
37-
internal class IteratorAdapter<T> : IIterator<T>
37+
internal sealed class IteratorAdapter<T> : IIterator<T>
3838
{
3939
private readonly IEnumerator<T> _enumerator;
4040
private bool? _hasNext;

0 commit comments

Comments
 (0)