void WriteSecurityHeader(TransportAsyncCallbackArgs args)
{
// secure transport: header negotiation
TransportProvider provider = this.settings.TransportProviders[this.providerIndex];
this.sentHeader = new ProtocolHeader(provider.ProtocolId, provider.DefaultVersion);
#if DEBUG
this.sentHeader.Trace(true);
AmqpTrace.Provider.AmqpLogOperationVerbose(this, TraceOperation.Send, this.sentHeader);
#endif
ByteBuffer buffer = new ByteBuffer(new byte[AmqpConstants.ProtocolHeaderSize]);
this.sentHeader.Encode(buffer);
args.SetBuffer(buffer.Buffer, buffer.Offset, buffer.Length);
args.CompletedCallback = this.OnWriteHeaderComplete;
this.writer.WriteBuffer(args);
}