susumu.yata
null+****@clear*****
Tue Nov 25 18:23:17 JST 2014
susumu.yata 2014-11-25 18:23:17 +0900 (Tue, 25 Nov 2014) New Revision: 1d61415afec6d39449cd301ce70695f2b464e5c1 https://github.com/groonga/grnxx/commit/1d61415afec6d39449cd301ce70695f2b464e5c1 Message: Rename Text::data() to raw_data(). (#116) Modified files: include/grnxx/data_types/scalar/text.hpp lib/grnxx/impl/column/scalar/text.cpp lib/grnxx/impl/column/vector/text.cpp lib/grnxx/impl/expression.cpp test/test_data_types.cpp Modified: include/grnxx/data_types/scalar/text.hpp (+4 -4) =================================================================== --- include/grnxx/data_types/scalar/text.hpp 2014-11-25 16:49:29 +0900 (b01e31b) +++ include/grnxx/data_types/scalar/text.hpp 2014-11-25 18:23:17 +0900 (52af5ef) @@ -29,15 +29,15 @@ class Text { size_(string.size()) {} explicit constexpr Text(NA) : data_(nullptr), size_(NA()) {} - constexpr const char *data() const { + constexpr const char *raw_data() const { return data_; } - constexpr Int size() const { - return size_; - } constexpr size_t raw_size() const { return size_.raw(); } + constexpr Int size() const { + return size_; + } constexpr bool is_empty() const { return raw_size() == 0; Modified: lib/grnxx/impl/column/scalar/text.cpp (+6 -5) =================================================================== --- lib/grnxx/impl/column/scalar/text.cpp 2014-11-25 16:49:29 +0900 (fd0604a) +++ lib/grnxx/impl/column/scalar/text.cpp 2014-11-25 18:23:17 +0900 (ac142af) @@ -65,7 +65,7 @@ void Column<Text>::set(Int row_id, const Datum &datum) { uint64_t header; if (size < 0xFFFF) { bodies_.resize(offset + size); - std::memcpy(&bodies_[offset], new_value.data(), size); + std::memcpy(&bodies_[offset], new_value.raw_data(), size); header = (offset << 16) | size; } else { // The size of a long text is stored in front of the body. @@ -74,7 +74,8 @@ void Column<Text>::set(Int row_id, const Datum &datum) { } bodies_.resize(offset + sizeof(uint64_t) + size); *reinterpret_cast<uint64_t *>(&bodies_[offset]) = size; - std::memcpy(&bodies_[offset + sizeof(uint64_t)], new_value.data(), size); + std::memcpy(&bodies_[offset + sizeof(uint64_t)], + new_value.raw_data(), size); header = (offset << 16) | 0xFFFF; } headers_[value_id] = header; @@ -235,7 +236,7 @@ void Column<Text>::set_key_attribute() { for (size_t i = 0; i < valid_size; ++i) try { Text value = get(grnxx::Int(i)); if (!value.is_na()) { - if (!set.insert(String(value.data(), value.raw_size())).second) { + if (!set.insert(String(value.raw_data(), value.raw_size())).second) { throw "Key duplicate"; // TODO } } @@ -319,7 +320,7 @@ void Column<Text>::set_key(Int row_id, const Datum &key) { uint64_t header; if (size < 0xFFFF) { bodies_.resize(offset + size); - std::memcpy(&bodies_[offset], value.data(), size); + std::memcpy(&bodies_[offset], value.raw_data(), size); header = (offset << 16) | size; } else { // The size of a long text is stored in front of the body. @@ -328,7 +329,7 @@ void Column<Text>::set_key(Int row_id, const Datum &key) { } bodies_.resize(offset + sizeof(uint64_t) + size); *reinterpret_cast<uint64_t *>(&bodies_[offset]) = size; - std::memcpy(&bodies_[offset + sizeof(uint64_t)], value.data(), size); + std::memcpy(&bodies_[offset + sizeof(uint64_t)], value.raw_data(), size); header = (offset << 16) | 0xFFFF; } headers_[value_id] = header; Modified: lib/grnxx/impl/column/vector/text.cpp (+1 -1) =================================================================== --- lib/grnxx/impl/column/vector/text.cpp 2014-11-25 16:49:29 +0900 (89114cc) +++ lib/grnxx/impl/column/vector/text.cpp 2014-11-25 18:23:17 +0900 (89a89ad) @@ -68,7 +68,7 @@ void Column<Vector<Text>>::set(Int row_id, const Datum &datum) { text_headers_[text_headers_offset + i].size = new_value[i].size(); if (!new_value[i].is_na()) { std::memcpy(&bodies_[bodies_offset], - new_value[i].data(), new_value[i].raw_size()); + new_value[i].raw_data(), new_value[i].raw_size()); bodies_offset += new_value[i].raw_size(); } } Modified: lib/grnxx/impl/expression.cpp (+1 -1) =================================================================== --- lib/grnxx/impl/expression.cpp 2014-11-25 16:49:29 +0900 (4784f53) +++ lib/grnxx/impl/expression.cpp 2014-11-25 18:23:17 +0900 (a888143) @@ -244,7 +244,7 @@ class ConstantNode<Text> : public TypedNode<Text> { explicit ConstantNode(const Value &value) : TypedNode<Value>(), value_() { - value_.assign(value.data(), value.raw_size()); + value_.assign(value.raw_data(), value.raw_size()); } ~ConstantNode() = default; Modified: test/test_data_types.cpp (+8 -8) =================================================================== --- test/test_data_types.cpp 2014-11-25 16:49:29 +0900 (e784d9a) +++ test/test_data_types.cpp 2014-11-25 18:23:17 +0900 (98657e3) @@ -940,9 +940,9 @@ void test_text() { assert(empty.type() == grnxx::TEXT_DATA); assert(na.type() == grnxx::TEXT_DATA); - assert(std::strcmp(ab.data(), "ab") == 0); - assert(std::strcmp(abc.data(), "abc") == 0); - assert(std::strcmp(bc.data(), "bc") == 0); + assert(std::strcmp(ab.raw_data(), "ab") == 0); + assert(std::strcmp(abc.raw_data(), "abc") == 0); + assert(std::strcmp(bc.raw_data(), "bc") == 0); assert(ab.size().raw() == 2); assert(abc.size().raw() == 3); @@ -1539,12 +1539,12 @@ void test_text_vector() { assert(empty.type() == grnxx::TEXT_VECTOR_DATA); assert(na.type() == grnxx::TEXT_VECTOR_DATA); - assert(abc[0].data() == data[0].data()); - assert(abc[1].data() == data[1].data()); - assert(abc[2].data() == data[2].data()); + assert(abc[0].match(data[0])); + assert(abc[1].match(data[1])); + assert(abc[2].match(data[2])); - assert(bcn[0].data() == data[1].data()); - assert(bcn[1].data() == data[2].data()); + assert(bcn[0].match(data[1])); + assert(bcn[1].match(data[2])); assert(bcn[2].is_na()); assert(abc.size().raw() == 3); -------------- next part -------------- HTML����������������������������... Download