package com.koushikdutta.async.http.server; import com.koushikdutta.async.DataEmitter; import com.koushikdutta.async.DataSink; import com.koushikdutta.async.NullDataCallback; import com.koushikdutta.async.Util; import com.koushikdutta.async.callback.CompletedCallback; import com.koushikdutta.async.callback.DataCallback; import com.koushikdutta.async.http.AsyncHttpRequest; import com.koushikdutta.async.http.body.AsyncHttpRequestBody; public class UnknownRequestBody implements AsyncHttpRequestBody<Void> { public UnknownRequestBody(String contentType) { mContentType = contentType; } int length = -1; public UnknownRequestBody(DataEmitter emitter, String contentType, int length) { mContentType = contentType; this.emitter = emitter; this.length = length; } @Override public void write(final AsyncHttpRequest request, DataSink sink, final CompletedCallback completed) { Util.pump(emitter, sink, completed); if (emitter.isPaused()) emitter.resume(); } private String mContentType; @Override public String getContentType() { return mContentType; } @Override public boolean readFullyOnRequest() { return false; } @Override public int length() { return length; } @Override public Void get() { return null; } public void setCallbacks(DataCallback callback, CompletedCallback endCallback) { emitter.setEndCallback(endCallback); emitter.setDataCallback(callback); } DataEmitter emitter; @Override public void parse(DataEmitter emitter, CompletedCallback completed) { this.emitter = emitter; emitter.setEndCallback(completed); emitter.setDataCallback(new NullDataCallback()); } }