C# Class Helios.Channels.AbstractChannel.AbstractUnsafe

IChannelUnsafe implementation which sub-classes must extend and use.
Inheritance: IChannelUnsafe
Datei anzeigen Open project: helios-io/helios

Public Properties

Property Type Description
InvokeWritabilityChanged System.Action
InvokeWritabilityChangedUnsafe Action

Protected Properties

Property Type Description
_channel AbstractChannel

Public Methods

Method Description
BeginRead ( ) : void
BindAsync ( EndPoint localAddress ) : System.Threading.Tasks.Task
CloseAsync ( ) : System.Threading.Tasks.Task
CloseForcibly ( ) : void
ConnectAsync ( EndPoint remoteAddress, EndPoint localAddress ) : System.Threading.Tasks.Task
DeregisterAsync ( ) : System.Threading.Tasks.Task

This method must NEVER be called directly, but be executed as an extra task with a clean call stack instead. The reason for this is that this method calls {@link ChannelPipeline#fireChannelUnregistered()} directly, which might lead to an unfortunate nesting of independent inbound/outbound events. See the comments input {@link #invokeLater(Runnable)} for more details.

DisconnectAsync ( ) : System.Threading.Tasks.Task
Flush ( ) : void
RegisterAsync ( IEventLoop eventLoop ) : System.Threading.Tasks.Task
SafeSetSuccess ( TaskCompletionSource promise ) : void
WriteAsync ( object msg ) : System.Threading.Tasks.Task

Protected Methods

Method Description
AbstractUnsafe ( AbstractChannel channel ) : System
AnnotateConnectException ( Exception exception, EndPoint remoteAddress ) : Exception
CloseIfClosed ( ) : void
CreateClosedChannelExceptionTask ( ) : System.Threading.Tasks.Task
EnsureOpen ( TaskCompletionSource promise ) : bool
Flush0 ( ) : void

Private Methods

Method Description
DoClose0 ( TaskCompletionSource promise ) : void
FireChannelInactiveAndDeregister ( bool wasActive ) : void
InvokeLater ( System.Action task ) : void
Register0 ( TaskCompletionSource promise ) : void
SafeSetFailure ( TaskCompletionSource promise, Exception cause ) : void

Method Details

AbstractUnsafe() protected method

protected AbstractUnsafe ( AbstractChannel channel ) : System
channel AbstractChannel
return System

AnnotateConnectException() protected method

protected AnnotateConnectException ( Exception exception, EndPoint remoteAddress ) : Exception
exception System.Exception
remoteAddress System.Net.EndPoint
return System.Exception

BeginRead() public method

public BeginRead ( ) : void
return void

BindAsync() public method

public BindAsync ( EndPoint localAddress ) : System.Threading.Tasks.Task
localAddress System.Net.EndPoint
return System.Threading.Tasks.Task

CloseAsync() public method

public CloseAsync ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task

CloseForcibly() public method

public CloseForcibly ( ) : void
return void

CloseIfClosed() protected method

protected CloseIfClosed ( ) : void
return void

ConnectAsync() public abstract method

public abstract ConnectAsync ( EndPoint remoteAddress, EndPoint localAddress ) : System.Threading.Tasks.Task
remoteAddress System.Net.EndPoint
localAddress System.Net.EndPoint
return System.Threading.Tasks.Task

CreateClosedChannelExceptionTask() protected method

protected CreateClosedChannelExceptionTask ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task

DeregisterAsync() public method

This method must NEVER be called directly, but be executed as an extra task with a clean call stack instead. The reason for this is that this method calls {@link ChannelPipeline#fireChannelUnregistered()} directly, which might lead to an unfortunate nesting of independent inbound/outbound events. See the comments input {@link #invokeLater(Runnable)} for more details.
public DeregisterAsync ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task

DisconnectAsync() public method

public DisconnectAsync ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task

EnsureOpen() protected method

protected EnsureOpen ( TaskCompletionSource promise ) : bool
promise TaskCompletionSource
return bool

Flush() public method

public Flush ( ) : void
return void

Flush0() protected method

protected Flush0 ( ) : void
return void

RegisterAsync() public method

public RegisterAsync ( IEventLoop eventLoop ) : System.Threading.Tasks.Task
eventLoop IEventLoop
return System.Threading.Tasks.Task

SafeSetSuccess() public method

public SafeSetSuccess ( TaskCompletionSource promise ) : void
promise TaskCompletionSource
return void

WriteAsync() public method

public WriteAsync ( object msg ) : System.Threading.Tasks.Task
msg object
return System.Threading.Tasks.Task

Property Details

InvokeWritabilityChanged public_oe property

public Action,System InvokeWritabilityChanged
return System.Action

InvokeWritabilityChangedUnsafe public_oe static_oe property

public static Action InvokeWritabilityChangedUnsafe
return Action

_channel protected_oe property

protected AbstractChannel,Helios.Channels _channel
return AbstractChannel