You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ap...@apache.org on 2018/11/01 16:49:30 UTC
[arrow] branch master updated: ARROW-3662: [C++] Add a const
overload to MemoryMappedFile::GetSize
This is an automated email from the ASF dual-hosted git repository.
apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new e69659d ARROW-3662: [C++] Add a const overload to MemoryMappedFile::GetSize
e69659d is described below
commit e69659d9cb4b895dcc45a8f10979789dc2324872
Author: Dimitri Vorona <vo...@in.tum.de>
AuthorDate: Thu Nov 1 17:49:21 2018 +0100
ARROW-3662: [C++] Add a const overload to MemoryMappedFile::GetSize
Author: Dimitri Vorona <vo...@in.tum.de>
Closes #2882 from alendit/get_size_const and squashes the following commits:
5e497853 <Dimitri Vorona> Add const overload for MemoryMappedFile::GetSize
---
cpp/src/arrow/io/file.cc | 6 +++++-
cpp/src/arrow/io/file.h | 3 +++
cpp/src/arrow/io/io-file-test.cc | 15 +++++++++++++++
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/cpp/src/arrow/io/file.cc b/cpp/src/arrow/io/file.cc
index a8cb923..c7cc1d0 100644
--- a/cpp/src/arrow/io/file.cc
+++ b/cpp/src/arrow/io/file.cc
@@ -522,11 +522,15 @@ Status MemoryMappedFile::Open(const std::string& path, FileMode::type mode,
return Status::OK();
}
-Status MemoryMappedFile::GetSize(int64_t* size) {
+Status MemoryMappedFile::GetSize(int64_t* size) const {
*size = memory_map_->size();
return Status::OK();
}
+Status MemoryMappedFile::GetSize(int64_t* size) {
+ return static_cast<const MemoryMappedFile*>(this)->GetSize(size);
+}
+
Status MemoryMappedFile::Tell(int64_t* position) const {
*position = memory_map_->position();
return Status::OK();
diff --git a/cpp/src/arrow/io/file.h b/cpp/src/arrow/io/file.h
index ceee7e9..9d7f939 100644
--- a/cpp/src/arrow/io/file.h
+++ b/cpp/src/arrow/io/file.h
@@ -224,6 +224,9 @@ class ARROW_EXPORT MemoryMappedFile : public ReadWriteFileInterface {
Status WriteAt(int64_t position, const void* data, int64_t nbytes) override;
// @return: the size in bytes of the memory source
+ Status GetSize(int64_t* size) const;
+
+ // @return: the size in bytes of the memory source
Status GetSize(int64_t* size) override;
int file_descriptor() const;
diff --git a/cpp/src/arrow/io/io-file-test.cc b/cpp/src/arrow/io/io-file-test.cc
index b8edbc1..afe2c60 100644
--- a/cpp/src/arrow/io/io-file-test.cc
+++ b/cpp/src/arrow/io/io-file-test.cc
@@ -656,6 +656,21 @@ TEST_F(TestMemoryMappedFile, WriteResizeRead) {
}
}
+TEST_F(TestMemoryMappedFile, GetConstGetSize) {
+ const int64_t buffer_size = 1024;
+ std::vector<uint8_t> buffer(buffer_size);
+ random_bytes(buffer_size, 0, buffer.data());
+
+ std::string path = "io-memory-map-write-read-test";
+ std::shared_ptr<MemoryMappedFile> result;
+ ASSERT_OK(InitMemoryMap(buffer_size, path, &result));
+
+ const auto& const_result = *result;
+ int64_t out_size;
+ ASSERT_OK(const_result.GetSize(&out_size));
+ ASSERT_EQ(buffer_size, out_size);
+}
+
TEST_F(TestMemoryMappedFile, ResizeRaisesOnExported) {
const int64_t buffer_size = 1024;
std::vector<uint8_t> buffer(buffer_size);