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_ |