Skip to content

Commit e94913c

Browse files
Make transport adapter messages public (#6250)
* Make transport adapter messages public so it can be used in Petabridge.Cmd for testing network disruptions * Update API Verify list * Fixing DocFx complaints Co-authored-by: Aaron Stannard <aaron@petabridge.com>
1 parent eeb156c commit e94913c

3 files changed

Lines changed: 67 additions & 7 deletions

File tree

src/core/Akka.API.Tests/CoreAPISpec.ApproveRemote.verified.txt

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,58 @@ namespace Akka.Remote.Transport
580580
public FailureInjectorProvider() { }
581581
public Akka.Remote.Transport.Transport Create(Akka.Remote.Transport.Transport wrappedTransport, Akka.Actor.ExtendedActorSystem system) { }
582582
}
583+
public class FailureInjectorTransportAdapter : Akka.Remote.Transport.AbstractTransportAdapter, Akka.Remote.Transport.IAssociationEventListener
584+
{
585+
public readonly Akka.Actor.ExtendedActorSystem ExtendedActorSystem;
586+
public const string FailureInjectorSchemeIdentifier = "gremlin";
587+
protected int MaximumOverhead;
588+
public FailureInjectorTransportAdapter(Akka.Remote.Transport.Transport wrappedTransport, Akka.Actor.ExtendedActorSystem extendedActorSystem) { }
589+
protected override Akka.Remote.Transport.SchemeAugmenter SchemeAugmenter { get; }
590+
protected override void InterceptAssociate(Akka.Actor.Address remoteAddress, System.Threading.Tasks.TaskCompletionSource<Akka.Remote.Transport.AssociationHandle> statusPromise) { }
591+
protected override System.Threading.Tasks.Task<Akka.Remote.Transport.IAssociationEventListener> InterceptListen(Akka.Actor.Address listenAddress, System.Threading.Tasks.Task<Akka.Remote.Transport.IAssociationEventListener> listenerTask) { }
592+
public override System.Threading.Tasks.Task<bool> ManagementCommand(object message) { }
593+
public void Notify(Akka.Remote.Transport.IAssociationEvent ev) { }
594+
public bool ShouldDropInbound(Akka.Actor.Address remoteAddress, object instance, string debugMessage) { }
595+
public bool ShouldDropOutbound(Akka.Actor.Address remoteAddress, object instance, string debugMessage) { }
596+
public sealed class All
597+
{
598+
public All(Akka.Remote.Transport.FailureInjectorTransportAdapter.IGremlinMode mode) { }
599+
public Akka.Remote.Transport.FailureInjectorTransportAdapter.IGremlinMode Mode { get; }
600+
}
601+
public sealed class Drop : Akka.Remote.Transport.FailureInjectorTransportAdapter.IGremlinMode
602+
{
603+
public Drop(double outboundDropP, double inboundDropP) { }
604+
public double InboundDropP { get; }
605+
public double OutboundDropP { get; }
606+
}
607+
public interface IFailureInjectorCommand { }
608+
public interface IGremlinMode { }
609+
public sealed class One
610+
{
611+
public One(Akka.Actor.Address remoteAddress, Akka.Remote.Transport.FailureInjectorTransportAdapter.IGremlinMode mode) { }
612+
public Akka.Remote.Transport.FailureInjectorTransportAdapter.IGremlinMode Mode { get; }
613+
public Akka.Actor.Address RemoteAddress { get; }
614+
}
615+
public sealed class PassThru : Akka.Remote.Transport.FailureInjectorTransportAdapter.IGremlinMode
616+
{
617+
public static Akka.Remote.Transport.FailureInjectorTransportAdapter.PassThru Instance { get; }
618+
}
619+
}
620+
public sealed class ForceDisassociate
621+
{
622+
public ForceDisassociate(Akka.Actor.Address address) { }
623+
public Akka.Actor.Address Address { get; }
624+
}
625+
public sealed class ForceDisassociateAck
626+
{
627+
public static Akka.Remote.Transport.ForceDisassociateAck Instance { get; }
628+
}
629+
public sealed class ForceDisassociateExplicitly
630+
{
631+
public ForceDisassociateExplicitly(Akka.Actor.Address address, Akka.Remote.Transport.DisassociateInfo reason) { }
632+
public Akka.Actor.Address Address { get; }
633+
public Akka.Remote.Transport.DisassociateInfo Reason { get; }
634+
}
583635
public interface IAssociationEvent : Akka.Actor.INoSerializationVerificationNeeded { }
584636
public interface IAssociationEventListener
585637
{
@@ -711,6 +763,16 @@ namespace Akka.Remote.Transport
711763
public ThrottlerProvider() { }
712764
public Akka.Remote.Transport.Transport Create(Akka.Remote.Transport.Transport wrappedTransport, Akka.Actor.ExtendedActorSystem system) { }
713765
}
766+
public sealed class TokenBucket : Akka.Remote.Transport.ThrottleMode
767+
{
768+
public TokenBucket(int capacity, double tokensPerSecond, long nanoTimeOfLastSend, int availableTokens) { }
769+
public override bool Equals(object obj) { }
770+
public override int GetHashCode() { }
771+
public override System.TimeSpan TimeToAvailable(long currentNanoTime, int tokens) { }
772+
public override System.ValueTuple<Akka.Remote.Transport.ThrottleMode, bool> TryConsumeTokens(long nanoTimeOfSend, int tokens) { }
773+
public static bool ==(Akka.Remote.Transport.TokenBucket left, Akka.Remote.Transport.TokenBucket right) { }
774+
public static bool !=(Akka.Remote.Transport.TokenBucket left, Akka.Remote.Transport.TokenBucket right) { }
775+
}
714776
public abstract class Transport
715777
{
716778
protected Transport() { }

src/core/Akka.Remote/Transport/FailureInjectorTransportAdapter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ private FailureInjectorException(SerializationInfo info, StreamingContext contex
6767
/// <summary>
6868
/// TBD
6969
/// </summary>
70-
internal class FailureInjectorTransportAdapter : AbstractTransportAdapter, IAssociationEventListener
70+
public class FailureInjectorTransportAdapter : AbstractTransportAdapter, IAssociationEventListener
7171
{
7272
#region Internal message classes
7373

src/core/Akka.Remote/Transport/ThrottleTransportAdapter.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public override Task<bool> ManagementCommand(object message)
139139
/// <summary>
140140
/// Management command to force disassociation of an address
141141
/// </summary>
142-
internal sealed class ForceDisassociate
142+
public sealed class ForceDisassociate
143143
{
144144
/// <summary>
145145
/// TBD
@@ -159,7 +159,7 @@ public ForceDisassociate(Address address)
159159
/// <summary>
160160
/// Management command to force disassociation of an address with an explicit error.
161161
/// </summary>
162-
internal sealed class ForceDisassociateExplicitly
162+
public sealed class ForceDisassociateExplicitly
163163
{
164164
/// <summary>
165165
/// TBD
@@ -186,7 +186,7 @@ public ForceDisassociateExplicitly(Address address, DisassociateInfo reason)
186186
/// <summary>
187187
/// INTERNAL API
188188
/// </summary>
189-
internal sealed class ForceDisassociateAck
189+
public sealed class ForceDisassociateAck
190190
{
191191
private ForceDisassociateAck() { }
192192
// ReSharper disable once InconsistentNaming
@@ -653,7 +653,7 @@ public override TimeSpan TimeToAvailable(long currentNanoTime, int tokens)
653653
/// <summary>
654654
/// Applies token-bucket throttling to introduce latency to a connection
655655
/// </summary>
656-
sealed class TokenBucket : ThrottleMode
656+
public sealed class TokenBucket : ThrottleMode
657657
{
658658
readonly int _capacity;
659659
readonly double _tokensPerSecond;
@@ -726,15 +726,13 @@ private bool Equals(TokenBucket other)
726726
&& _availableTokens == other._availableTokens;
727727
}
728728

729-
/// <inheritdoc/>
730729
public override bool Equals(object obj)
731730
{
732731
if (ReferenceEquals(null, obj)) return false;
733732
if (ReferenceEquals(this, obj)) return true;
734733
return obj is TokenBucket && Equals((TokenBucket)obj);
735734
}
736735

737-
/// <inheritdoc/>
738736
public override int GetHashCode()
739737
{
740738
unchecked

0 commit comments

Comments
 (0)