diff options
Diffstat (limited to 'net/base/upload_element_reader.cc')
-rw-r--r-- | net/base/upload_element_reader.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/net/base/upload_element_reader.cc b/net/base/upload_element_reader.cc new file mode 100644 index 0000000..bb5cd85 --- /dev/null +++ b/net/base/upload_element_reader.cc @@ -0,0 +1,38 @@ +// Copyright (c) 2012 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. + +#include "net/base/upload_element_reader.h" + +#include "base/logging.h" +#include "net/base/upload_bytes_element_reader.h" +#include "net/base/upload_element.h" +#include "net/base/upload_file_element_reader.h" + +namespace net { + +// static +UploadElementReader* UploadElementReader::Create(const UploadElement& element) { + UploadElementReader* reader = NULL; + switch (element.type()) { + case UploadElement::TYPE_BYTES: + reader = new UploadBytesElementReader(element.bytes(), + element.bytes_length()); + break; + case UploadElement::TYPE_FILE: + reader = new UploadFileElementReader( + element.file_path(), + element.file_range_offset(), + element.file_range_length(), + element.expected_file_modification_time()); + break; + } + DCHECK(reader); + return reader; +} + +bool UploadElementReader::IsInMemory() const { + return false; +} + +} // namespace net |