Update wrapper implementations to use base types (issue #1336).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1775 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2014-07-15 17:19:43 +00:00
parent f9bf8dfa10
commit 646ae3310f
7 changed files with 105 additions and 90 deletions

View File

@@ -6,36 +6,29 @@
#include <algorithm>
#include "include/base/cef_bind.h"
#include "include/base/cef_logging.h"
#include "include/base/cef_macros.h"
#include "include/cef_callback.h"
#include "include/cef_request.h"
#include "include/cef_runnable.h"
#include "include/cef_stream.h"
#include "include/wrapper/cef_closure_task.h"
#include "include/wrapper/cef_helpers.h"
// Class that represents a readable/writable character buffer.
class CefStreamResourceHandler::Buffer {
public:
Buffer()
: buffer_(NULL),
size_(0),
: size_(0),
bytes_requested_(0),
bytes_written_(0),
bytes_read_(0) {
}
~Buffer() {
if (buffer_)
delete [] buffer_;
}
void Reset(int new_size) {
if (size_ < new_size) {
if (buffer_)
delete [] buffer_;
size_ = new_size;
buffer_ = new char[size_];
buffer_.reset(new char[size_]);
DCHECK(buffer_);
}
bytes_requested_ = new_size;
@@ -55,7 +48,7 @@ class CefStreamResourceHandler::Buffer {
const int write_size =
std::min(bytes_to_read, bytes_written_ - bytes_read_);
if (write_size > 0) {
memcpy(data_out, buffer_ + bytes_read_, write_size);
memcpy(data_out, buffer_ .get() + bytes_read_, write_size);
bytes_read_ += write_size;
}
return write_size;
@@ -67,7 +60,7 @@ class CefStreamResourceHandler::Buffer {
int bytes_read;
do {
bytes_read = static_cast<int>(
reader->Read(buffer_ + bytes_written_, 1,
reader->Read(buffer_.get() + bytes_written_, 1,
bytes_requested_ - bytes_written_));
bytes_written_ += bytes_read;
} while (bytes_read != 0 && bytes_written_ < bytes_requested_);
@@ -76,7 +69,7 @@ class CefStreamResourceHandler::Buffer {
}
private:
char* buffer_;
scoped_ptr<char[]> buffer_;
int size_;
int bytes_requested_;
int bytes_written_;
@@ -91,8 +84,7 @@ CefStreamResourceHandler::CefStreamResourceHandler(
: status_code_(200),
status_text_("OK"),
mime_type_(mime_type),
stream_(stream),
buffer_(NULL)
stream_(stream)
#ifndef NDEBUG
, buffer_owned_by_file_thread_(false)
#endif
@@ -112,16 +104,13 @@ CefStreamResourceHandler::CefStreamResourceHandler(
status_text_(status_text),
mime_type_(mime_type),
header_map_(header_map),
stream_(stream),
buffer_(NULL) {
stream_(stream) {
DCHECK(!mime_type_.empty());
DCHECK(stream_.get());
read_on_file_thread_ = stream_->MayBlock();
}
CefStreamResourceHandler::~CefStreamResourceHandler() {
if (buffer_)
delete buffer_;
}
bool CefStreamResourceHandler::ProcessRequest(CefRefPtr<CefRequest> request,
@@ -171,8 +160,8 @@ bool CefStreamResourceHandler::ReadResponse(void* data_out,
buffer_owned_by_file_thread_ = true;
#endif
CefPostTask(TID_FILE,
NewCefRunnableMethod(this, &CefStreamResourceHandler::ReadOnFileThread,
bytes_to_read, callback));
base::Bind(&CefStreamResourceHandler::ReadOnFileThread, this,
bytes_to_read, callback));
return true;
}
} else {
@@ -203,7 +192,7 @@ void CefStreamResourceHandler::ReadOnFileThread(
#endif
if (!buffer_)
buffer_ = new Buffer();
buffer_.reset(new Buffer());
buffer_->Reset(bytes_to_read);
buffer_->ReadFrom(stream_);