public BinaryDataOutput prepareForPostRequest() { if (post == null) { messageWriter = new BinaryMessageWriter(implConnection.transliterator); post = new HttpClient(); } //else { // post.reset(); // } messageWriter.initialize(streamBuffer.getOutputStream()); return(messageWriter); }
/// <summary> /// Writes the specified message to a byte array allocated by the specigied <paramref name="bufferManager"/> /// </summary> public static ArraySegment <byte> WriteMessage(Message message, BufferManager bufferManager, int messageOffset) { var messageWriter = s_threadInstance ?? new BinaryMessageWriter(); // Reentrancy is not expected, but if the operation throws we dont // want to reuse the current messageWriter since XmlWriter might not be in starting state s_threadInstance = null; var result = messageWriter.WriteMessageCore(message, bufferManager, messageOffset); // Save for later reuse s_threadInstance = messageWriter; return(result); }
public override ArraySegment <byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset) { if (message == null) { throw new ArgumentNullException(nameof(message)); } if (bufferManager == null) { throw new ArgumentNullException(nameof(bufferManager)); } if (maxMessageSize < 0) { throw new ArgumentOutOfRangeException(nameof(maxMessageSize)); } this.ThrowIfInvalidMessageVersion(message); return(BinaryMessageWriter.WriteMessage(message, bufferManager, messageOffset)); }