using System.ServiceModel.Channels; namespace AVEVA.Historian.Client.Wcf; internal sealed class MdasMessageEncoder : MessageEncoder { public const string MdasContentType = "application/x-mdas"; private readonly MessageEncoder inner; public MdasMessageEncoder(MessageEncoder inner) { this.inner = inner ?? throw new ArgumentNullException(nameof(inner)); } public override string ContentType => MdasContentType; public override string MediaType => MdasContentType; public override MessageVersion MessageVersion => inner.MessageVersion; public override bool IsContentTypeSupported(string contentType) { return contentType.StartsWith(MdasContentType, StringComparison.OrdinalIgnoreCase) || inner.IsContentTypeSupported(contentType); } public override Message ReadMessage(ArraySegment buffer, BufferManager bufferManager, string contentType) { return inner.ReadMessage(buffer, bufferManager, inner.ContentType); } public override Message ReadMessage(Stream stream, int maxSizeOfHeaders, string contentType) { return inner.ReadMessage(stream, maxSizeOfHeaders, inner.ContentType); } public override void WriteMessage(Message message, Stream stream) { inner.WriteMessage(message, stream); } public override ArraySegment WriteMessage( Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset) { return inner.WriteMessage(message, maxMessageSize, bufferManager, messageOffset); } }