public ServerSingletonPreambleConnectionReader(Microsoft.ServiceBus.Channels.IConnection connection, Action connectionDequeuedCallback, long streamPosition, int offset, int size, Microsoft.ServiceBus.Channels.TransportSettingsCallback transportSettingsCallback, Microsoft.ServiceBus.Channels.ConnectionClosedCallback closedCallback, Microsoft.ServiceBus.Channels.ServerSingletonPreambleCallback callback) : base(connection, closedCallback) { this.decoder = new Microsoft.ServiceBus.Channels.ServerSingletonDecoder(streamPosition, base.MaxViaSize, base.MaxContentTypeSize); this.offset = offset; this.size = size; this.callback = callback; this.transportSettingsCallback = transportSettingsCallback; this.rawConnection = connection; base.ConnectionDequeuedCallback = connectionDequeuedCallback; }
private void OnSingletonConnection(Microsoft.ServiceBus.Channels.IConnection connection, Action connectionDequeuedCallback, long streamPosition, int offset, int size, TimeSpan timeout) { if (this.onSingletonPreambleKnown == null) { this.onSingletonPreambleKnown = new Microsoft.ServiceBus.Channels.ServerSingletonPreambleCallback(this.OnSingletonPreambleKnown); } Microsoft.ServiceBus.Channels.ServerSingletonPreambleConnectionReader serverSingletonPreambleConnectionReader = new Microsoft.ServiceBus.Channels.ServerSingletonPreambleConnectionReader(connection, connectionDequeuedCallback, streamPosition, offset, size, this.transportSettingsCallback, this.onConnectionClosed, this.onSingletonPreambleKnown); lock (this.ThisLock) { if (!this.isClosed) { this.connectionReaders.Add(serverSingletonPreambleConnectionReader); } else { serverSingletonPreambleConnectionReader.Dispose(); return; } } serverSingletonPreambleConnectionReader.StartReading(this.viaDelegate, timeout); }