public abstract ConnectionTuneOk ( ushort channelMax, uint frameMax, ushort heartbeat ) : void | ||
channelMax | ushort | |
frameMax | uint | |
heartbeat | ushort | |
return | void |
public void Open(bool insist) { BlockingCell connectionStartCell = new BlockingCell(); m_model0.m_connectionStartCell = connectionStartCell; m_frameHandler.Timeout = HandshakeTimeout; m_frameHandler.SendHeader(); ConnectionStartDetails connectionStart = (ConnectionStartDetails) connectionStartCell.Value; AmqpVersion serverVersion = new AmqpVersion(connectionStart.m_versionMajor, connectionStart.m_versionMinor); if (!serverVersion.Equals(Protocol.Version)) { TerminateMainloop(); FinishClose(); throw new ProtocolVersionMismatchException(Protocol.MajorVersion, Protocol.MinorVersion, serverVersion.Major, serverVersion.Minor); } // FIXME: check that PLAIN is supported. // FIXME: parse out locales properly! ConnectionTuneDetails connectionTune = m_model0.ConnectionStartOk(BuildClientPropertiesTable(), "PLAIN", Encoding.UTF8.GetBytes("\0" + m_parameters.UserName + "\0" + m_parameters.Password), "en_US"); ushort channelMax = (ushort)NegotiatedMaxValue(m_parameters.RequestedChannelMax, connectionTune.m_channelMax); ChannelMax = channelMax; uint frameMax = NegotiatedMaxValue(m_parameters.RequestedFrameMax, connectionTune.m_frameMax); FrameMax = frameMax; ushort heartbeat = (ushort)NegotiatedMaxValue(m_parameters.RequestedHeartbeat, connectionTune.m_heartbeat); Heartbeat = heartbeat; m_model0.ConnectionTuneOk(channelMax, frameMax, heartbeat); string knownHosts = m_model0.ConnectionOpen(m_parameters.VirtualHost, "", // FIXME: make configurable? insist); KnownHosts = AmqpTcpEndpoint.ParseMultiple(Protocol, knownHosts); }
public void Open(bool insist) { BlockingCell connectionStartCell = new BlockingCell(); m_model0.m_connectionStartCell = connectionStartCell; m_frameHandler.Timeout = HandshakeTimeout; m_frameHandler.SendHeader(); ConnectionStartDetails connectionStart = (ConnectionStartDetails) connectionStartCell.Value; ServerProperties = connectionStart.m_serverProperties; AmqpVersion serverVersion = new AmqpVersion(connectionStart.m_versionMajor, connectionStart.m_versionMinor); if (!serverVersion.Equals(Protocol.Version)) { TerminateMainloop(); FinishClose(); throw new ProtocolVersionMismatchException(Protocol.MajorVersion, Protocol.MinorVersion, serverVersion.Major, serverVersion.Minor); } m_clientProperties = new Hashtable(m_factory.ClientProperties); // FIXME: check that PLAIN is supported. // FIXME: parse out locales properly! ConnectionTuneDetails connectionTune = default(ConnectionTuneDetails); try { connectionTune = m_model0.ConnectionStartOk(m_clientProperties, "PLAIN", Encoding.UTF8.GetBytes( "\0" + m_factory.UserName + "\0" + m_factory.Password), "en_US"); } catch (OperationInterruptedException e) { throw new PossibleAuthenticationFailureException( "Possibly caused by authentication failure", e); } ushort channelMax = (ushort)NegotiatedMaxValue(m_factory.RequestedChannelMax, connectionTune.m_channelMax); m_sessionManager = new SessionManager(this, channelMax); uint frameMax = NegotiatedMaxValue(m_factory.RequestedFrameMax, connectionTune.m_frameMax); FrameMax = frameMax; ushort heartbeat = (ushort)NegotiatedMaxValue(m_factory.RequestedHeartbeat, connectionTune.m_heartbeat); Heartbeat = heartbeat; m_model0.ConnectionTuneOk(channelMax, frameMax, heartbeat); string knownHosts = m_model0.ConnectionOpen(m_factory.VirtualHost, "", // FIXME: make configurable? insist); KnownHosts = AmqpTcpEndpoint.ParseMultiple(Protocol, knownHosts); }