@ Override public VirtualConnection sendRequestBody ( WsByteBuffer [ ] body , InterChannelCallback callback , boolean bForce ) throws MessageSentException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . entry ( tc , "sendRequestBody(async)" ) ; } if ( isMessageSent ( ) ) { throw new MessageSentException ( "Message already sent" ) ; } // if headers haven't been sent, then set for partial body transfer if ( ! headersSent ( ) ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Setting partial body true" ) ; } setPartialBody ( true ) ; } getLink ( ) . setAllowReconnect ( true ) ; setForceAsync ( bForce ) ; setAppWriteCallback ( callback ) ; VirtualConnection vc = sendOutgoing ( body , getRequestImpl ( ) , HttpOSCWriteCallback . getRef ( ) ) ; // Note: if forcequeue is true, then we will not get a VC object as // the lower layer will use the callback and return null if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . exit ( tc , "sendRequestBody(async): " + vc ) ; } return vc ; }
Send the given body buffers for the outgoing request asynchronously . If chunked encoding is set then each call to this method will be considered a chunk and encoded as such . If the message is Content - Length defined then the buffers will simply be sent out with no modifications .