public static BrokeredMessage GetBrokeredMessageFromObject(object serializableObject, CompressionSettings compressionSettings, OrchestrationInstance instance, string messageType) { if (serializableObject == null) { throw new ArgumentNullException("serializableObject"); } if (compressionSettings.Style == CompressionStyle.Legacy) { return(new BrokeredMessage(serializableObject)); } bool disposeStream = true; var rawStream = new MemoryStream(); WriteObjectToStream(rawStream, serializableObject); try { BrokeredMessage brokeredMessage = null; if (compressionSettings.Style == CompressionStyle.Always || (compressionSettings.Style == CompressionStyle.Threshold && rawStream.Length > compressionSettings.ThresholdInBytes)) { Stream compressedStream = GetCompressedStream(rawStream); brokeredMessage = new BrokeredMessage(compressedStream, true); brokeredMessage.Properties[FrameworkConstants.CompressionTypePropertyName] = FrameworkConstants.CompressionTypeGzipPropertyValue; TraceHelper.TraceInstance(TraceEventType.Information, instance, () => "Compression stats for " + (messageType ?? string.Empty) + " : " + brokeredMessage.MessageId + ", uncompressed " + rawStream.Length + " -> compressed " + compressedStream.Length); } else { brokeredMessage = new BrokeredMessage(rawStream, true); disposeStream = false; brokeredMessage.Properties[FrameworkConstants.CompressionTypePropertyName] = FrameworkConstants.CompressionTypeNonePropertyValue; } return(brokeredMessage); } finally { if (disposeStream) { rawStream.Dispose(); } } }
public static BrokeredMessage GetBrokeredMessageFromObject(object serializableObject, CompressionSettings compressionSettings) { return(GetBrokeredMessageFromObject(serializableObject, compressionSettings, null, null)); }