Kestrel API clean up based on review (#11257)

- Make most of the sockets transport internal.
- Remove EndPoint from ListenOptions
This commit is contained in:
David Fowler 2019-06-17 08:10:42 +02:00 committed by GitHub
parent 169b7db307
commit ab52a1d3ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 14 additions and 82 deletions

View File

@ -144,7 +144,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
internal ListenOptions() { }
public System.IServiceProvider ApplicationServices { get { throw null; } }
public System.Collections.Generic.List<Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.IConnectionAdapter> ConnectionAdapters { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
public System.Net.EndPoint EndPoint { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }
public ulong FileHandle { get { throw null; } }
public System.Net.IPEndPoint IPEndPoint { get { throw null; } }
public Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions KestrelServerOptions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } }

View File

@ -41,7 +41,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
EndPoint = new FileHandleEndPoint(fileHandle, handleType);
}
public EndPoint EndPoint { get; internal set; }
internal EndPoint EndPoint { get; set; }
// IPEndPoint is mutable so port 0 can be updated to the bound port.
/// <summary>

View File

@ -25,71 +25,3 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets
public bool NoDelay { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
}
}
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public static partial class BufferExtensions
{
public static System.ArraySegment<byte> GetArray(this System.Memory<byte> memory) { throw null; }
public static System.ArraySegment<byte> GetArray(this System.ReadOnlyMemory<byte> memory) { throw null; }
}
public partial class IOQueue : System.IO.Pipelines.PipeScheduler, System.Threading.IThreadPoolWorkItem
{
public IOQueue() { }
public override void Schedule(System.Action<object> action, object state) { }
void System.Threading.IThreadPoolWorkItem.Execute() { }
}
public partial interface ISocketsTrace : Microsoft.Extensions.Logging.ILogger
{
void ConnectionError(string connectionId, System.Exception ex);
void ConnectionPause(string connectionId);
void ConnectionReadFin(string connectionId);
void ConnectionReset(string connectionId);
void ConnectionResume(string connectionId);
void ConnectionWriteFin(string connectionId, string reason);
}
public partial class SocketAwaitableEventArgs : System.Net.Sockets.SocketAsyncEventArgs, System.Runtime.CompilerServices.ICriticalNotifyCompletion, System.Runtime.CompilerServices.INotifyCompletion
{
public SocketAwaitableEventArgs(System.IO.Pipelines.PipeScheduler ioScheduler) { }
public bool IsCompleted { get { throw null; } }
public void Complete() { }
public Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketAwaitableEventArgs GetAwaiter() { throw null; }
public int GetResult() { throw null; }
public void OnCompleted(System.Action continuation) { }
protected override void OnCompleted(System.Net.Sockets.SocketAsyncEventArgs _) { }
public void UnsafeOnCompleted(System.Action continuation) { }
}
public sealed partial class SocketReceiver : Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketSenderReceiverBase
{
public SocketReceiver(System.Net.Sockets.Socket socket, System.IO.Pipelines.PipeScheduler scheduler) : base (default(System.Net.Sockets.Socket), default(System.IO.Pipelines.PipeScheduler)) { }
public Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketAwaitableEventArgs ReceiveAsync(System.Memory<byte> buffer) { throw null; }
public Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketAwaitableEventArgs WaitForDataAsync() { throw null; }
}
public sealed partial class SocketSender : Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketSenderReceiverBase
{
public SocketSender(System.Net.Sockets.Socket socket, System.IO.Pipelines.PipeScheduler scheduler) : base (default(System.Net.Sockets.Socket), default(System.IO.Pipelines.PipeScheduler)) { }
public Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketAwaitableEventArgs SendAsync(System.Buffers.ReadOnlySequence<byte> buffers) { throw null; }
}
public abstract partial class SocketSenderReceiverBase : System.IDisposable
{
protected readonly Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketAwaitableEventArgs _awaitableEventArgs;
protected readonly System.Net.Sockets.Socket _socket;
protected SocketSenderReceiverBase(System.Net.Sockets.Socket socket, System.IO.Pipelines.PipeScheduler scheduler) { }
public void Dispose() { }
}
public partial class SocketsTrace : Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.ISocketsTrace, Microsoft.Extensions.Logging.ILogger
{
public SocketsTrace(Microsoft.Extensions.Logging.ILogger logger) { }
public System.IDisposable BeginScope<TState>(TState state) { throw null; }
public void ConnectionError(string connectionId, System.Exception ex) { }
public void ConnectionPause(string connectionId) { }
public void ConnectionRead(string connectionId, int count) { }
public void ConnectionReadFin(string connectionId) { }
public void ConnectionReset(string connectionId) { }
public void ConnectionResume(string connectionId) { }
public void ConnectionWrite(string connectionId, int count) { }
public void ConnectionWriteCallback(string connectionId, int status) { }
public void ConnectionWriteFin(string connectionId, string reason) { }
public bool IsEnabled(Microsoft.Extensions.Logging.LogLevel logLevel) { throw null; }
public void Log<TState>(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception exception, System.Func<TState, System.Exception, string> formatter) { }
}
}

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
@ -6,7 +6,7 @@ using System.Runtime.InteropServices;
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public static class BufferExtensions
internal static class BufferExtensions
{
public static ArraySegment<byte> GetArray(this Memory<byte> memory)
{

View File

@ -8,7 +8,7 @@ using System.Threading;
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public class IOQueue : PipeScheduler, IThreadPoolWorkItem
internal class IOQueue : PipeScheduler, IThreadPoolWorkItem
{
private readonly ConcurrentQueue<Work> _workItems = new ConcurrentQueue<Work>();
private int _doingWork;

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
@ -6,7 +6,7 @@ using Microsoft.Extensions.Logging;
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public interface ISocketsTrace : ILogger
internal interface ISocketsTrace : ILogger
{
void ConnectionReadFin(string connectionId);

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public class SocketAwaitableEventArgs : SocketAsyncEventArgs, ICriticalNotifyCompletion
internal class SocketAwaitableEventArgs : SocketAsyncEventArgs, ICriticalNotifyCompletion
{
private static readonly Action _callbackCompleted = () => { };

View File

@ -7,7 +7,7 @@ using System.Net.Sockets;
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public sealed class SocketReceiver : SocketSenderReceiverBase
internal sealed class SocketReceiver : SocketSenderReceiverBase
{
public SocketReceiver(Socket socket, PipeScheduler scheduler) : base(socket, scheduler)
{

View File

@ -11,7 +11,7 @@ using System.Runtime.InteropServices;
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public sealed class SocketSender : SocketSenderReceiverBase
internal sealed class SocketSender : SocketSenderReceiverBase
{
private List<ArraySegment<byte>> _bufferList;

View File

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
@ -7,7 +7,7 @@ using System.Net.Sockets;
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public abstract class SocketSenderReceiverBase : IDisposable
internal abstract class SocketSenderReceiverBase : IDisposable
{
protected readonly Socket _socket;
protected readonly SocketAwaitableEventArgs _awaitableEventArgs;

View File

@ -6,7 +6,7 @@ using Microsoft.Extensions.Logging;
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
{
public class SocketsTrace : ISocketsTrace
internal class SocketsTrace : ISocketsTrace
{
// ConnectionRead: Reserved: 3

View File

@ -14,6 +14,7 @@
<Compile Include="$(KestrelSharedSourceRoot)test\TestApplicationErrorLogger.cs" />
<Compile Include="$(KestrelSharedSourceRoot)test\TestHttp1Connection.cs" />
<Compile Include="$(KestrelSharedSourceRoot)test\TestKestrelTrace.cs" />
<Compile Include="..\..\Transport.Sockets\src\Internal\IOQueue.cs" Link="Internal\IOQueue.cs" />
<Compile Include="$(KestrelSharedSourceRoot)\TransportConnection.cs" Link="Internal\TransportConnection.cs" />
<Compile Include="$(KestrelSharedSourceRoot)\TransportConnection.Generated.cs" Link="Internal\TransportConnection.Generated.cs" />
<Compile Include="$(KestrelSharedSourceRoot)\TransportConnection.FeatureCollection.cs" Link="Internal\TransportConnection.FeatureCollection.cs" />