public override void write(object obj, IProtocolFormatter writer) { Request message = (Request)obj; writer.BeginWriteMessage(message); writer.WriteMessageVersion((int)message.getVersion()); Header[] headers = message.getResponseHeaders(); Body[] bodies = message.getResponseBodies(); writer.DirectWriteShort(headers.Length); if (Log.isLogging(LoggingConstants.DEBUG)) { Log.log(LoggingConstants.DEBUG, "got headers " + headers.Length); Log.log(LoggingConstants.DEBUG, "got bodies " + bodies.Length); Log.log(LoggingConstants.DEBUG, "AMFMessageWriter.write - message version: " + message.getVersion() + " header length: " + headers.Length); } for (int i = 0; i < headers.Length; i++) { MessageWriter.writeObject(headers[i], writer); } writer.DirectWriteShort(bodies.Length); #if FULL_BUILD bool isAMF3 = ThreadContext.currentHttpContext() != null && ThreadContext.currentHttpContext().Items.Contains("v3_request"); #endif for (int i = 0; i < bodies.Length; i++) { // if message is amf0 then body of the message is invocation result and if should be // processed via cache managment #if FULL_BUILD if (!isAMF3) { Cache.WriteAndSave(bodies[i], writer); } else #endif MessageWriter.writeObject(bodies[i], writer); } writer.EndWriteMessage(); }
public override void write( object obj, IProtocolFormatter writer ) { Request message = (Request)obj; writer.BeginWriteMessage( message ); writer.WriteMessageVersion( (int)message.getVersion() ); Header[] headers = message.getResponseHeaders(); Body[] bodies = message.getResponseBodies(); writer.DirectWriteShort( headers.Length ); if ( Log.isLogging( LoggingConstants.DEBUG ) ) { Log.log( LoggingConstants.DEBUG, "got headers " + headers.Length ); Log.log( LoggingConstants.DEBUG, "got bodies " + bodies.Length ); Log.log( LoggingConstants.DEBUG, "AMFMessageWriter.write - message version: " + message.getVersion() + " header length: " + headers.Length ); } for ( int i = 0; i < headers.Length; i++ ) MessageWriter.writeObject( headers[ i ], writer ); writer.DirectWriteShort( bodies.Length ); #if FULL_BUILD bool isAMF3 = ThreadContext.currentHttpContext() != null && ThreadContext.currentHttpContext().Items.Contains( "v3_request" ); #endif for ( int i = 0; i < bodies.Length; i++ ) { // if message is amf0 then body of the message is invocation result and if should be // processed via cache managment #if FULL_BUILD if ( !isAMF3 ) Cache.WriteAndSave( bodies[ i ], writer ); else #endif MessageWriter.writeObject( bodies[ i ], writer ); } writer.EndWriteMessage(); }