Chromium Code Reviews| Index: components/cronet/android/test/upload_data_stream_handler.h | 
| diff --git a/components/cronet/android/test/upload_data_stream_handler.h b/components/cronet/android/test/upload_data_stream_handler.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..62ee4f04406296b7aa27a578a7387c49cb7542b3 | 
| --- /dev/null | 
| +++ b/components/cronet/android/test/upload_data_stream_handler.h | 
| @@ -0,0 +1,74 @@ | 
| +// Copyright 2014 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#ifndef COMPONENTS_CRONET_ANDROID_TEST_UPLOAD_DATA_STREAM_HANDLER_H_ | 
| +#define COMPONENTS_CRONET_ANDROID_TEST_UPLOAD_DATA_STREAM_HANDLER_H_ | 
| + | 
| +#include <jni.h> | 
| + | 
| +#include "components/cronet/android/cronet_upload_data_stream_adapter.h" | 
| +#include "base/android/scoped_java_ref.h" | 
| +#include "base/macros.h" | 
| +#include "base/memory/scoped_ptr.h" | 
| +#include "base/memory/weak_ptr.h" | 
| +#include "base/threading/thread.h" | 
| +#include "net/base/io_buffer.h" | 
| + | 
| +namespace cronet { | 
| + | 
| +class UploadDataStreamHandler { | 
| 
 
mmenke
2015/01/21 18:48:58
This doesn't need to be in the header.  Can be in
 
xunjieli
2015/01/21 23:49:24
Done.
 
 | 
| + public: | 
| + class Delegate { | 
| 
 
mmenke
2015/01/21 18:48:58
You don't need both this and UploadDataStreamHandl
 
xunjieli
2015/01/21 23:49:24
Done. Good idea! I have inlined the methods.
 
 | 
| + public: | 
| + Delegate() {} | 
| + virtual ~Delegate() {} | 
| + virtual void OnInitCalled(int res); | 
| + virtual void OnReadCompleted(int res); | 
| + virtual void OnInitCompleted(int res); | 
| + virtual void OnResetCompleted(); | 
| + virtual void OnCheckIfReadCallbackInvoked(bool res); | 
| + virtual void OnCheckIfInitCallbackInvoked(bool res); | 
| + }; | 
| + | 
| + UploadDataStreamHandler(CronetUploadDataStreamAdapter* adapter, | 
| + JNIEnv* env, | 
| + jobject jupload_data_stream_handler); | 
| + ~UploadDataStreamHandler(); | 
| + | 
| + void Init(); | 
| + void Read(); | 
| + void Reset(); | 
| + void InitDelegate(JNIEnv* env, jobject jupload_stream_handler); | 
| + scoped_refptr<base::SingleThreadTaskRunner> GetTaskRunner() const; | 
| + std::string Data() const; | 
| + void CheckIfInitCallbackInvoked(); | 
| + void CheckIfReadCallbackInvoked(); | 
| + | 
| + private: | 
| + void OnInitComplete(int res); | 
| + void OnReadComplete(int res); | 
| + void InitOnNetworkThread(); | 
| + void ReadOnNetworkThread(); | 
| + void ResetOnNetworkThread(); | 
| + void CheckIfInitCallbackInvokedOnNetworkThread(); | 
| + void CheckIfReadCallbackInvokedOnNetworkThread(); | 
| + | 
| + bool init_complete_; | 
| + bool read_complete_; | 
| + int bytes_read_; | 
| + | 
| + base::Thread* network_thread_; | 
| + scoped_ptr<CronetUploadDataStreamAdapter> adapter_; | 
| + base::WeakPtrFactory<UploadDataStreamHandler> weak_factory_; | 
| + scoped_ptr<Delegate> delegate_; | 
| + scoped_refptr<net::IOBufferWithSize> read_buffer_; | 
| + | 
| + DISALLOW_COPY_AND_ASSIGN(UploadDataStreamHandler); | 
| +}; | 
| + | 
| +bool UploadDataStreamHandlerRegisterJni(JNIEnv* env); | 
| + | 
| +} // namespace cronet | 
| + | 
| +#endif // COMPONENTS_CRONET_ANDROID_TEST_UPLOAD_DATA_STREAM_HANDLER_H_ |