C# 클래스 RabbitMQ.Client.Impl.ConnectionBase

상속: IConnection
파일 보기 프로젝트 열기: CSGOpenSource/rabbitmq-dotnet-client 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
HandshakeTimeout int
m_appContinuation System.Threading.ManualResetEvent
m_callbackException CallbackExceptionEventHandler
m_clientProperties object>.IDictionary
m_closeReason RabbitMQ.Client.ShutdownEventArgs
m_closed bool
m_connectionBlocked ConnectionBlockedEventHandler
m_connectionShutdown ConnectionShutdownEventHandler
m_connectionUnblocked ConnectionUnblockedEventHandler
m_eventLock object
m_factory RabbitMQ.Client.ConnectionFactory
m_frameHandler IFrameHandler
m_frameMax uint
m_heartbeat ushort
m_heartbeatFrame Frame
m_heartbeatRead System.Threading.AutoResetEvent
m_heartbeatWrite System.Threading.AutoResetEvent
m_id System.Guid
m_knownHosts RabbitMQ.Client.AmqpTcpEndpoint[]
m_missedHeartbeats int
m_model0 ModelBase
m_running bool
m_serverProperties object>.IDictionary
m_session0 RabbitMQ.Client.Impl.MainSession
m_sessionManager RabbitMQ.Client.Impl.SessionManager
m_shutdownReport IList

Private Properties

프로퍼티 타입 설명
IDisposable void
NegotiatedMaxValue uint

공개 메소드들

메소드 설명
Abort ( ) : void

API-side invocation of connection abort.

Abort ( int timeout ) : void

API-side invocation of connection abort with timeout.

Abort ( ushort reasonCode, string reasonText ) : void

API-side invocation of connection abort.

Abort ( ushort reasonCode, string reasonText, ShutdownInitiator initiator, int timeout ) : void
Abort ( ushort reasonCode, string reasonText, int timeout ) : void

API-side invocation of connection abort with timeout.

Close ( ) : void

API-side invocation of connection.close.

Close ( RabbitMQ.Client.ShutdownEventArgs reason ) : void
Close ( RabbitMQ.Client.ShutdownEventArgs reason, bool abort, int timeout ) : void

Try to close connection in a graceful way

Shutdown reason contains code and text assigned when closing the connection, as well as the information about what initiated the close

Abort flag, if true, signals to close the ongoing connection immediately and do not report any errors if it was already closed.

Timeout determines how much time internal close operations should be given to complete. Negative or Timeout.Infinite value mean infinity.

Close ( int timeout ) : void

API-side invocation of connection.close with timeout.

Close ( ushort reasonCode, string reasonText ) : void

API-side invocation of connection.close.

Close ( ushort reasonCode, string reasonText, int timeout ) : void

API-side invocation of connection.close with timeout.

ClosingLoop ( ) : void Loop only used while quiescing. Use only to cleanly close connection
ConnectionBase ( ConnectionFactory factory, bool insist, IFrameHandler frameHandler ) : System
ConnectionCloseWrapper ( ushort reasonCode, string reasonText ) : Command
CreateModel ( ) : IModel
CreateSession ( ) : ISession
CreateSession ( int channelNumber ) : ISession
DefaultClientProperties ( ) : object>.IDictionary
FinishClose ( ) : void
HandleConnectionBlocked ( string reason ) : void
HandleConnectionUnblocked ( ) : void
HandleDomainUnload ( object sender, EventArgs ea ) : void We need to close the socket, otherwise attempting to unload the domain could cause a CannotUnloadAppDomainException
HandleMainLoopException ( RabbitMQ.Client.ShutdownEventArgs reason ) : void
HardProtocolExceptionHandler ( RabbitMQ.Client.Impl.HardProtocolException hpe ) : bool
HeartbeatReadLoop ( ) : void
HeartbeatWriteLoop ( ) : void
InternalClose ( RabbitMQ.Client.ShutdownEventArgs reason ) : void
LogCloseError ( String error, Exception ex ) : void
MainLoop ( ) : void
MainLoopIteration ( ) : void
NotifyHeartbeatThread ( ) : void
NotifyReceivedCloseOk ( ) : void
OnCallbackException ( RabbitMQ.Client.Events.CallbackExceptionEventArgs args ) : void
OnConnectionBlocked ( RabbitMQ.Client.Events.ConnectionBlockedEventArgs args ) : void
OnConnectionUnblocked ( ) : void
OnShutdown ( ) : void

Broadcasts notification of the final shutdown of the connection.

Open ( bool insist ) : void
PrettyPrintShutdownReport ( ) : void
QuiesceChannel ( RabbitMQ.Client.Impl.SoftProtocolException pe ) : void

Sets the channel named in the SoftProtocolException into "quiescing mode", where we issue a channel.close and ignore everything except for subsequent channel.close messages and the channel.close-ok reply that should eventually arrive.

Since a well-behaved peer will not wait indefinitely before issuing the close-ok, we don't bother with a timeout here; compare this to the case of a connection.close-ok, where a timeout is necessary.

We need to send the close method and politely wait for a reply before marking the channel as available for reuse.

As soon as SoftProtocolException is detected, we should stop servicing ordinary application work, and should concentrate on bringing down the channel as quickly and gracefully as possible. The way this is done, as per the close-protocol, is to signal closure up the stack *before* sending the channel.close, by invoking ISession.Close. Once the upper layers have been signalled, we are free to do what we need to do to clean up and shut down the channel.

SetCloseReason ( RabbitMQ.Client.ShutdownEventArgs reason ) : bool
StartHeartbeatLoop ( ThreadStart loop, string name, bool useBackgroundThread ) : void
StartHeartbeatLoops ( bool useBackgroundThread ) : void
StartMainLoop ( bool useBackgroundThread ) : void
TerminateMainloop ( ) : void May be called more than once. Should therefore be idempotent.
ToString ( ) : string
WriteFrame ( Frame f ) : void

보호된 메소드들

메소드 설명
ChannelCloseWrapper ( ushort reasonCode, string reasonText ) : Command
StartAndTune ( ) : void

비공개 메소드들

메소드 설명
IDisposable ( ) : void
NegotiatedMaxValue ( uint clientValue, uint serverValue ) : uint

메소드 상세

Abort() 공개 메소드

API-side invocation of connection abort.
public Abort ( ) : void
리턴 void

Abort() 공개 메소드

API-side invocation of connection abort with timeout.
public Abort ( int timeout ) : void
timeout int
리턴 void

Abort() 공개 메소드

API-side invocation of connection abort.
public Abort ( ushort reasonCode, string reasonText ) : void
reasonCode ushort
reasonText string
리턴 void

Abort() 공개 메소드

public Abort ( ushort reasonCode, string reasonText, ShutdownInitiator initiator, int timeout ) : void
reasonCode ushort
reasonText string
initiator ShutdownInitiator
timeout int
리턴 void

Abort() 공개 메소드

API-side invocation of connection abort with timeout.
public Abort ( ushort reasonCode, string reasonText, int timeout ) : void
reasonCode ushort
reasonText string
timeout int
리턴 void

ChannelCloseWrapper() 보호된 메소드

protected ChannelCloseWrapper ( ushort reasonCode, string reasonText ) : Command
reasonCode ushort
reasonText string
리턴 Command

Close() 공개 메소드

API-side invocation of connection.close.
public Close ( ) : void
리턴 void

Close() 공개 메소드

public Close ( RabbitMQ.Client.ShutdownEventArgs reason ) : void
reason RabbitMQ.Client.ShutdownEventArgs
리턴 void

Close() 공개 메소드

Try to close connection in a graceful way

Shutdown reason contains code and text assigned when closing the connection, as well as the information about what initiated the close

Abort flag, if true, signals to close the ongoing connection immediately and do not report any errors if it was already closed.

Timeout determines how much time internal close operations should be given to complete. Negative or Timeout.Infinite value mean infinity.

public Close ( RabbitMQ.Client.ShutdownEventArgs reason, bool abort, int timeout ) : void
reason RabbitMQ.Client.ShutdownEventArgs
abort bool
timeout int
리턴 void

Close() 공개 메소드

API-side invocation of connection.close with timeout.
public Close ( int timeout ) : void
timeout int
리턴 void

Close() 공개 메소드

API-side invocation of connection.close.
public Close ( ushort reasonCode, string reasonText ) : void
reasonCode ushort
reasonText string
리턴 void

Close() 공개 메소드

API-side invocation of connection.close with timeout.
public Close ( ushort reasonCode, string reasonText, int timeout ) : void
reasonCode ushort
reasonText string
timeout int
리턴 void

ClosingLoop() 공개 메소드

Loop only used while quiescing. Use only to cleanly close connection
public ClosingLoop ( ) : void
리턴 void

ConnectionBase() 공개 메소드

public ConnectionBase ( ConnectionFactory factory, bool insist, IFrameHandler frameHandler ) : System
factory RabbitMQ.Client.ConnectionFactory
insist bool
frameHandler IFrameHandler
리턴 System

ConnectionCloseWrapper() 공개 메소드

public ConnectionCloseWrapper ( ushort reasonCode, string reasonText ) : Command
reasonCode ushort
reasonText string
리턴 Command

CreateModel() 공개 메소드

public CreateModel ( ) : IModel
리턴 IModel

CreateSession() 공개 메소드

public CreateSession ( ) : ISession
리턴 ISession

CreateSession() 공개 메소드

public CreateSession ( int channelNumber ) : ISession
channelNumber int
리턴 ISession

DefaultClientProperties() 공개 정적인 메소드

public static DefaultClientProperties ( ) : object>.IDictionary
리턴 object>.IDictionary

FinishClose() 공개 메소드

public FinishClose ( ) : void
리턴 void

HandleConnectionBlocked() 공개 메소드

public HandleConnectionBlocked ( string reason ) : void
reason string
리턴 void

HandleConnectionUnblocked() 공개 메소드

public HandleConnectionUnblocked ( ) : void
리턴 void

HandleDomainUnload() 공개 메소드

We need to close the socket, otherwise attempting to unload the domain could cause a CannotUnloadAppDomainException
public HandleDomainUnload ( object sender, EventArgs ea ) : void
sender object
ea System.EventArgs
리턴 void

HandleMainLoopException() 공개 메소드

public HandleMainLoopException ( RabbitMQ.Client.ShutdownEventArgs reason ) : void
reason RabbitMQ.Client.ShutdownEventArgs
리턴 void

HardProtocolExceptionHandler() 공개 메소드

public HardProtocolExceptionHandler ( RabbitMQ.Client.Impl.HardProtocolException hpe ) : bool
hpe RabbitMQ.Client.Impl.HardProtocolException
리턴 bool

HeartbeatReadLoop() 공개 메소드

public HeartbeatReadLoop ( ) : void
리턴 void

HeartbeatWriteLoop() 공개 메소드

public HeartbeatWriteLoop ( ) : void
리턴 void

InternalClose() 공개 메소드

public InternalClose ( RabbitMQ.Client.ShutdownEventArgs reason ) : void
reason RabbitMQ.Client.ShutdownEventArgs
리턴 void

LogCloseError() 공개 메소드

public LogCloseError ( String error, Exception ex ) : void
error String
ex System.Exception
리턴 void

MainLoop() 공개 메소드

public MainLoop ( ) : void
리턴 void

MainLoopIteration() 공개 메소드

public MainLoopIteration ( ) : void
리턴 void

NotifyHeartbeatThread() 공개 메소드

public NotifyHeartbeatThread ( ) : void
리턴 void

NotifyReceivedCloseOk() 공개 메소드

public NotifyReceivedCloseOk ( ) : void
리턴 void

OnCallbackException() 공개 메소드

public OnCallbackException ( RabbitMQ.Client.Events.CallbackExceptionEventArgs args ) : void
args RabbitMQ.Client.Events.CallbackExceptionEventArgs
리턴 void

OnConnectionBlocked() 공개 메소드

public OnConnectionBlocked ( RabbitMQ.Client.Events.ConnectionBlockedEventArgs args ) : void
args RabbitMQ.Client.Events.ConnectionBlockedEventArgs
리턴 void

OnConnectionUnblocked() 공개 메소드

public OnConnectionUnblocked ( ) : void
리턴 void

OnShutdown() 공개 메소드

Broadcasts notification of the final shutdown of the connection.
public OnShutdown ( ) : void
리턴 void

Open() 공개 메소드

public Open ( bool insist ) : void
insist bool
리턴 void

PrettyPrintShutdownReport() 공개 메소드

public PrettyPrintShutdownReport ( ) : void
리턴 void

QuiesceChannel() 공개 메소드

Sets the channel named in the SoftProtocolException into "quiescing mode", where we issue a channel.close and ignore everything except for subsequent channel.close messages and the channel.close-ok reply that should eventually arrive.

Since a well-behaved peer will not wait indefinitely before issuing the close-ok, we don't bother with a timeout here; compare this to the case of a connection.close-ok, where a timeout is necessary.

We need to send the close method and politely wait for a reply before marking the channel as available for reuse.

As soon as SoftProtocolException is detected, we should stop servicing ordinary application work, and should concentrate on bringing down the channel as quickly and gracefully as possible. The way this is done, as per the close-protocol, is to signal closure up the stack *before* sending the channel.close, by invoking ISession.Close. Once the upper layers have been signalled, we are free to do what we need to do to clean up and shut down the channel.

public QuiesceChannel ( RabbitMQ.Client.Impl.SoftProtocolException pe ) : void
pe RabbitMQ.Client.Impl.SoftProtocolException
리턴 void

SetCloseReason() 공개 메소드

public SetCloseReason ( RabbitMQ.Client.ShutdownEventArgs reason ) : bool
reason RabbitMQ.Client.ShutdownEventArgs
리턴 bool

StartAndTune() 보호된 메소드

protected StartAndTune ( ) : void
리턴 void

StartHeartbeatLoop() 공개 메소드

public StartHeartbeatLoop ( ThreadStart loop, string name, bool useBackgroundThread ) : void
loop ThreadStart
name string
useBackgroundThread bool
리턴 void

StartHeartbeatLoops() 공개 메소드

public StartHeartbeatLoops ( bool useBackgroundThread ) : void
useBackgroundThread bool
리턴 void

StartMainLoop() 공개 메소드

public StartMainLoop ( bool useBackgroundThread ) : void
useBackgroundThread bool
리턴 void

TerminateMainloop() 공개 메소드

May be called more than once. Should therefore be idempotent.
public TerminateMainloop ( ) : void
리턴 void

ToString() 공개 메소드

public ToString ( ) : string
리턴 string

WriteFrame() 공개 메소드

public WriteFrame ( Frame f ) : void
f Frame
리턴 void

프로퍼티 상세

HandshakeTimeout 공개적으로 정적으로 프로퍼티

Timeout used while waiting for AMQP handshaking to complete (milliseconds)
public static int HandshakeTimeout
리턴 int

m_appContinuation 공개적으로 프로퍼티

public ManualResetEvent,System.Threading m_appContinuation
리턴 System.Threading.ManualResetEvent

m_callbackException 공개적으로 프로퍼티

public CallbackExceptionEventHandler m_callbackException
리턴 CallbackExceptionEventHandler

m_clientProperties 공개적으로 프로퍼티

public IDictionary m_clientProperties
리턴 object>.IDictionary

m_closeReason 공개적으로 프로퍼티

public ShutdownEventArgs,RabbitMQ.Client m_closeReason
리턴 RabbitMQ.Client.ShutdownEventArgs

m_closed 공개적으로 프로퍼티

public bool m_closed
리턴 bool

m_connectionBlocked 공개적으로 프로퍼티

public ConnectionBlockedEventHandler m_connectionBlocked
리턴 ConnectionBlockedEventHandler

m_connectionShutdown 공개적으로 프로퍼티

public ConnectionShutdownEventHandler m_connectionShutdown
리턴 ConnectionShutdownEventHandler

m_connectionUnblocked 공개적으로 프로퍼티

public ConnectionUnblockedEventHandler m_connectionUnblocked
리턴 ConnectionUnblockedEventHandler

m_eventLock 공개적으로 프로퍼티

public object m_eventLock
리턴 object

m_factory 공개적으로 프로퍼티

public ConnectionFactory,RabbitMQ.Client m_factory
리턴 RabbitMQ.Client.ConnectionFactory

m_frameHandler 공개적으로 프로퍼티

public IFrameHandler m_frameHandler
리턴 IFrameHandler

m_frameMax 공개적으로 프로퍼티

public uint m_frameMax
리턴 uint

m_heartbeat 공개적으로 프로퍼티

public ushort m_heartbeat
리턴 ushort

m_heartbeatFrame 공개적으로 프로퍼티

Heartbeat frame for transmission. Reusable across connections.
public Frame,RabbitMQ.Client.Impl m_heartbeatFrame
리턴 Frame

m_heartbeatRead 공개적으로 프로퍼티

public AutoResetEvent,System.Threading m_heartbeatRead
리턴 System.Threading.AutoResetEvent

m_heartbeatWrite 공개적으로 프로퍼티

public AutoResetEvent,System.Threading m_heartbeatWrite
리턴 System.Threading.AutoResetEvent

m_id 공개적으로 프로퍼티

public Guid,System m_id
리턴 System.Guid

m_knownHosts 공개적으로 프로퍼티

public AmqpTcpEndpoint[],RabbitMQ.Client m_knownHosts
리턴 RabbitMQ.Client.AmqpTcpEndpoint[]

m_missedHeartbeats 공개적으로 프로퍼티

public int m_missedHeartbeats
리턴 int

m_model0 공개적으로 프로퍼티

public ModelBase,RabbitMQ.Client.Impl m_model0
리턴 ModelBase

m_running 공개적으로 프로퍼티

public bool m_running
리턴 bool

m_serverProperties 공개적으로 프로퍼티

public IDictionary m_serverProperties
리턴 object>.IDictionary

m_session0 공개적으로 프로퍼티

public MainSession,RabbitMQ.Client.Impl m_session0
리턴 RabbitMQ.Client.Impl.MainSession

m_sessionManager 공개적으로 프로퍼티

public SessionManager,RabbitMQ.Client.Impl m_sessionManager
리턴 RabbitMQ.Client.Impl.SessionManager

m_shutdownReport 공개적으로 프로퍼티

public IList m_shutdownReport
리턴 IList