[Groonga-commit] groonga/grnxx at 52ca8d6 [master] Move headers into subdirectories.

Back to archive index

susumu.yata null+****@clear*****
Wed Jun 5 13:36:17 JST 2013


susumu.yata	2013-06-05 13:36:17 +0900 (Wed, 05 Jun 2013)

  New Revision: 52ca8d67007a4555517eb9c385ea0b95c89aff85
  https://github.com/groonga/grnxx/commit/52ca8d67007a4555517eb9c385ea0b95c89aff85

  Message:
    Move headers into subdirectories.

  Copied files:
    lib/grnxx/map/array_map/header.cpp
      (from lib/grnxx/map/array_map/dummy.cpp)
    lib/grnxx/map/array_map/header.hpp
      (from lib/grnxx/map/array_map/dummy.cpp)
    lib/grnxx/map/hash_table/header.cpp
      (from lib/grnxx/map/array_map/dummy.cpp)
    lib/grnxx/map/hash_table/header.hpp
      (from lib/grnxx/map/array_map/dummy.cpp)
  Modified files:
    lib/grnxx/map/array_map.cpp
    lib/grnxx/map/array_map.hpp
    lib/grnxx/map/array_map/Makefile.am
    lib/grnxx/map/array_map/dummy.cpp
    lib/grnxx/map/hash_table.cpp
    lib/grnxx/map/hash_table.hpp
    lib/grnxx/map/hash_table/Makefile.am
    lib/grnxx/map/hash_table/link_array.hpp

  Modified: lib/grnxx/map/array_map.cpp (+7 -23)
===================================================================
--- lib/grnxx/map/array_map.cpp    2013-06-05 12:04:49 +0900 (e22de5a)
+++ lib/grnxx/map/array_map.cpp    2013-06-05 13:36:17 +0900 (857aa3a)
@@ -22,29 +22,13 @@
 #include "grnxx/bytes.hpp"
 #include "grnxx/geo_point.hpp"
 #include "grnxx/logger.hpp"
+#include "grnxx/map/array_map/header.hpp"
 #include "grnxx/map/helper.hpp"
 #include "grnxx/storage.hpp"
 
 namespace grnxx {
 namespace map {
 
-struct ArrayMapHeader {
-  MapType map_type;
-  uint32_t keys_storage_node_id;
-  uint32_t bits_storage_node_id;
-  int64_t max_key_id;
-  uint64_t num_keys;
-
-  ArrayMapHeader();
-};
-
-ArrayMapHeader::ArrayMapHeader()
-    : map_type(MAP_ARRAY),
-      keys_storage_node_id(STORAGE_INVALID_NODE_ID),
-      bits_storage_node_id(STORAGE_INVALID_NODE_ID),
-      max_key_id(MAP_MIN_KEY_ID - 1),
-      num_keys(0) {}
-
 template <typename T>
 ArrayMap<T>::ArrayMap()
     : storage_(nullptr),
@@ -304,13 +288,13 @@ bool ArrayMap<T>::create_map(Storage *storage, uint32_t storage_node_id,
                              const MapOptions &) {
   storage_ = storage;
   StorageNode storage_node =
-      storage->create_node(storage_node_id, sizeof(ArrayMapHeader));
+      storage->create_node(storage_node_id, sizeof(Header));
   if (!storage_node) {
     return false;
   }
   storage_node_id_ = storage_node.id();
-  header_ = static_cast<ArrayMapHeader *>(storage_node.body());
-  *header_ = ArrayMapHeader();
+  header_ = static_cast<Header *>(storage_node.body());
+  *header_ = Header();
   keys_.reset(KeyArray::create(storage, storage_node_id_));
   bits_.reset(BitArray::create(storage, storage_node_id_));
   if (!keys_ || !bits_) {
@@ -329,13 +313,13 @@ bool ArrayMap<T>::open_map(Storage *storage, uint32_t storage_node_id) {
   if (!storage_node) {
     return false;
   }
-  if (storage_node.size() < sizeof(ArrayMapHeader)) {
+  if (storage_node.size() < sizeof(Header)) {
     GRNXX_ERROR() << "invalid format: size = " << storage_node.size()
-                  << ", header_size = " << sizeof(ArrayMapHeader);
+                  << ", header_size = " << sizeof(Header);
     return false;
   }
   storage_node_id_ = storage_node_id;
-  header_ = static_cast<ArrayMapHeader *>(storage_node.body());
+  header_ = static_cast<Header *>(storage_node.body());
   keys_.reset(KeyArray::open(storage, header_->keys_storage_node_id));
   bits_.reset(BitArray::open(storage, header_->bits_storage_node_id));
   if (!keys_ || !bits_) {

  Modified: lib/grnxx/map/array_map.hpp (+6 -2)
===================================================================
--- lib/grnxx/map/array_map.hpp    2013-06-05 12:04:49 +0900 (070886d)
+++ lib/grnxx/map/array_map.hpp    2013-06-05 13:36:17 +0900 (55678de)
@@ -32,11 +32,15 @@ namespace grnxx {
 class Storage;
 
 namespace map {
+namespace array_map {
 
-struct ArrayMapHeader;
+struct Header;
+
+}  // namespace array_map
 
 template <typename T>
 class ArrayMap : public Map<T> {
+  using Header = array_map::Header;
   using KeyArray = typename array_map::KeyArray<T>::Type;
   using BitArray = typename array_map::BitArray<T>::Type;
   using BitArrayUnit = typename BitArray::Unit;
@@ -73,7 +77,7 @@ class ArrayMap : public Map<T> {
  private:
   Storage *storage_;
   uint32_t storage_node_id_;
-  ArrayMapHeader *header_;
+  Header *header_;
   std::unique_ptr<KeyArray> keys_;
   std::unique_ptr<BitArray> bits_;
 

  Modified: lib/grnxx/map/array_map/Makefile.am (+3 -1)
===================================================================
--- lib/grnxx/map/array_map/Makefile.am    2013-06-05 12:04:49 +0900 (865e8f4)
+++ lib/grnxx/map/array_map/Makefile.am    2013-06-05 13:36:17 +0900 (c9b5701)
@@ -3,10 +3,12 @@ noinst_LTLIBRARIES = libgrnxx_map_array_map.la
 libgrnxx_map_array_map_la_LDFLAGS = @AM_LTLDFLAGS@
 
 libgrnxx_map_array_map_la_SOURCES =		\
-	dummy.cpp
+	dummy.cpp				\
+	header.cpp
 
 libgrnxx_map_array_map_includedir = ${includedir}/grnxx/map/array_map
 libgrnxx_map_array_map_include_HEADERS =	\
 	bit_array.hpp				\
 	dummy.hpp				\
+	header.hpp				\
 	key_array.hpp

  Modified: lib/grnxx/map/array_map/dummy.cpp (+1 -0)
===================================================================
--- lib/grnxx/map/array_map/dummy.cpp    2013-06-05 12:04:49 +0900 (1df8db3)
+++ lib/grnxx/map/array_map/dummy.cpp    2013-06-05 13:36:17 +0900 (04c0d4f)
@@ -18,6 +18,7 @@
 #include "grnxx/map/array_map/dummy.hpp"
 
 #include "grnxx/map/array_map/bit_array.hpp"
+#include "grnxx/map/array_map/header.hpp"
 #include "grnxx/map/array_map/key_array.hpp"
 
 namespace grnxx {

  Copied: lib/grnxx/map/array_map/header.cpp (+9 -3) 76%
===================================================================
--- lib/grnxx/map/array_map/dummy.cpp    2013-06-05 12:04:49 +0900 (1df8db3)
+++ lib/grnxx/map/array_map/header.cpp    2013-06-05 13:36:17 +0900 (28a5644)
@@ -15,15 +15,21 @@
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
-#include "grnxx/map/array_map/dummy.hpp"
+#include "grnxx/map/array_map/header.hpp"
 
-#include "grnxx/map/array_map/bit_array.hpp"
-#include "grnxx/map/array_map/key_array.hpp"
+#include "grnxx/storage.hpp"
 
 namespace grnxx {
 namespace map {
 namespace array_map {
 
+Header::Header()
+    : map_type(MAP_ARRAY),
+      keys_storage_node_id(STORAGE_INVALID_NODE_ID),
+      bits_storage_node_id(STORAGE_INVALID_NODE_ID),
+      max_key_id(MAP_MIN_KEY_ID - 1),
+      num_keys(0) {}
+
 }  // namespace array_map
 }  // namespace map
 }  // namespace grnxx

  Copied: lib/grnxx/map/array_map/header.hpp (+18 -3) 71%
===================================================================
--- lib/grnxx/map/array_map/dummy.cpp    2013-06-05 12:04:49 +0900 (1df8db3)
+++ lib/grnxx/map/array_map/header.hpp    2013-06-05 13:36:17 +0900 (5c67f6c)
@@ -15,15 +15,30 @@
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
-#include "grnxx/map/array_map/dummy.hpp"
+#ifndef GRNXX_MAP_ARRAY_MAP_HEADER_HPP
+#define GRNXX_MAP_ARRAY_MAP_HEADER_HPP
 
-#include "grnxx/map/array_map/bit_array.hpp"
-#include "grnxx/map/array_map/key_array.hpp"
+#include "grnxx/features.hpp"
+
+#include "grnxx/map.hpp"
+#include "grnxx/types.hpp"
 
 namespace grnxx {
 namespace map {
 namespace array_map {
 
+struct Header {
+  MapType map_type;
+  uint32_t keys_storage_node_id;
+  uint32_t bits_storage_node_id;
+  int64_t max_key_id;
+  uint64_t num_keys;
+
+  Header();
+};
+
 }  // namespace array_map
 }  // namespace map
 }  // namespace grnxx
+
+#endif  // GRNXX_MAP_ARRAY_MAP_HEADER_HPP

  Modified: lib/grnxx/map/hash_table.cpp (+8 -37)
===================================================================
--- lib/grnxx/map/hash_table.cpp    2013-06-05 12:04:49 +0900 (e686925)
+++ lib/grnxx/map/hash_table.cpp    2013-06-05 13:36:17 +0900 (c874bc2)
@@ -25,6 +25,7 @@
 #include "grnxx/lock.hpp"
 #include "grnxx/logger.hpp"
 #include "grnxx/map/hash_table/hash.hpp"
+#include "grnxx/map/hash_table/header.hpp"
 #include "grnxx/map/helper.hpp"
 #include "grnxx/mutex.hpp"
 #include "grnxx/storage.hpp"
@@ -34,37 +35,7 @@ namespace map {
 
 template <typename T>
 using Hash = hash_table::Hash<T>;
-
-constexpr uint64_t INVALID_LINK = uint64_t(-1);
-
-struct HashTableHeader {
-  MapType map_type;
-  uint32_t key_ids_storage_node_id;
-  uint32_t old_key_ids_storage_node_id;
-  uint32_t keys_storage_node_id;
-  uint32_t bits_storage_node_id;
-  uint32_t links_storage_node_id;
-  int64_t max_key_id;
-  uint64_t num_keys;
-  uint64_t num_key_ids;
-  uint64_t latest_link;
-  Mutex mutex;
-
-  HashTableHeader();
-};
-
-HashTableHeader::HashTableHeader()
-    : map_type(MAP_HASH_TABLE),
-      key_ids_storage_node_id(STORAGE_INVALID_NODE_ID),
-      old_key_ids_storage_node_id(STORAGE_INVALID_NODE_ID),
-      keys_storage_node_id(STORAGE_INVALID_NODE_ID),
-      bits_storage_node_id(STORAGE_INVALID_NODE_ID),
-      links_storage_node_id(STORAGE_INVALID_NODE_ID),
-      max_key_id(MAP_MIN_KEY_ID - 1),
-      num_keys(0),
-      num_key_ids(0),
-      latest_link(INVALID_LINK),
-      mutex(MUTEX_UNLOCKED) {}
+using hash_table::INVALID_LINK;
 
 template <typename T>
 HashTable<T>::HashTable()
@@ -425,13 +396,13 @@ bool HashTable<T>::create_map(Storage *storage, uint32_t storage_node_id,
                               const MapOptions &) {
   storage_ = storage;
   StorageNode storage_node =
-      storage->create_node(storage_node_id, sizeof(HashTableHeader));
+      storage->create_node(storage_node_id, sizeof(Header));
   if (!storage_node) {
     return false;
   }
   storage_node_id_ = storage_node.id();
-  header_ = static_cast<HashTableHeader *>(storage_node.body());
-  *header_ = HashTableHeader();
+  header_ = static_cast<Header *>(storage_node.body());
+  *header_ = Header();
   key_ids_.reset(KeyIDArray::create(storage, storage_node_id_,
                                     KeyIDArray::page_size() - 1));
   keys_.reset(KeyArray::create(storage, storage_node_id_));
@@ -455,13 +426,13 @@ bool HashTable<T>::open_map(Storage *storage, uint32_t storage_node_id) {
   if (!storage_node) {
     return false;
   }
-  if (storage_node.size() < sizeof(HashTableHeader)) {
+  if (storage_node.size() < sizeof(Header)) {
     GRNXX_ERROR() << "invalid format: size = " << storage_node.size()
-                  << ", header_size = " << sizeof(HashTableHeader);
+                  << ", header_size = " << sizeof(Header);
     return false;
   }
   storage_node_id_ = storage_node_id;
-  header_ = static_cast<HashTableHeader *>(storage_node.body());
+  header_ = static_cast<Header *>(storage_node.body());
   key_ids_.reset(KeyIDArray::open(storage, header_->key_ids_storage_node_id));
   keys_.reset(KeyArray::open(storage, header_->keys_storage_node_id));
   bits_.reset(BitArray::open(storage, header_->bits_storage_node_id));

  Modified: lib/grnxx/map/hash_table.hpp (+9 -2)
===================================================================
--- lib/grnxx/map/hash_table.hpp    2013-06-05 12:04:49 +0900 (ea6e20b)
+++ lib/grnxx/map/hash_table.hpp    2013-06-05 13:36:17 +0900 (79ca3b3)
@@ -30,12 +30,19 @@
 #include "grnxx/types.hpp"
 
 namespace grnxx {
+
+class Storage;
+
 namespace map {
+namespace hash_table {
+
+struct Header;
 
-struct HashTableHeader;
+}  // namespace hash_table
 
 template <typename T>
 class HashTable : public Map<T> {
+  using Header = hash_table::Header;
   using KeyIDArray = typename hash_table::KeyIDArray<T>;
   using KeyArray = typename hash_table::KeyArray<T>::Type;
   using BitArray = typename hash_table::BitArray<T>::Type;
@@ -74,7 +81,7 @@ class HashTable : public Map<T> {
  private:
   Storage *storage_;
   uint32_t storage_node_id_;
-  HashTableHeader *header_;
+  Header *header_;
   std::unique_ptr<KeyIDArray> key_ids_;
   std::unique_ptr<KeyIDArray> old_key_ids_;
   std::unique_ptr<KeyArray> keys_;

  Modified: lib/grnxx/map/hash_table/Makefile.am (+4 -2)
===================================================================
--- lib/grnxx/map/hash_table/Makefile.am    2013-06-05 12:04:49 +0900 (a346c66)
+++ lib/grnxx/map/hash_table/Makefile.am    2013-06-05 13:36:17 +0900 (bf818f3)
@@ -2,14 +2,16 @@ noinst_LTLIBRARIES = libgrnxx_map_hash_table.la
 
 libgrnxx_map_hash_table_la_LDFLAGS = @AM_LTLDFLAGS@
 
-libgrnxx_map_hash_table_la_SOURCES =	\
-	dummy.cpp
+libgrnxx_map_hash_table_la_SOURCES =		\
+	dummy.cpp				\
+	header.cpp
 
 libgrnxx_map_hash_table_includedir = ${includedir}/grnxx/map/hash_table
 libgrnxx_map_hash_table_include_HEADERS =	\
 	bit_array.hpp				\
 	dummy.hpp				\
 	hash.hpp				\
+	header.hpp				\
 	key_array.hpp				\
 	key_id_array.hpp			\
 	link_array.hpp

  Copied: lib/grnxx/map/hash_table/header.cpp (+18 -5) 57%
===================================================================
--- lib/grnxx/map/array_map/dummy.cpp    2013-06-05 12:04:49 +0900 (1df8db3)
+++ lib/grnxx/map/hash_table/header.cpp    2013-06-05 13:36:17 +0900 (f8981b2)
@@ -15,15 +15,28 @@
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
-#include "grnxx/map/array_map/dummy.hpp"
+#include "grnxx/map/hash_table/header.hpp"
 
-#include "grnxx/map/array_map/bit_array.hpp"
-#include "grnxx/map/array_map/key_array.hpp"
+#include "grnxx/map/hash_table/link_array.hpp"
+#include "grnxx/storage.hpp"
 
 namespace grnxx {
 namespace map {
-namespace array_map {
+namespace hash_table {
 
-}  // namespace array_map
+Header::Header()
+    : map_type(MAP_HASH_TABLE),
+      key_ids_storage_node_id(STORAGE_INVALID_NODE_ID),
+      old_key_ids_storage_node_id(STORAGE_INVALID_NODE_ID),
+      keys_storage_node_id(STORAGE_INVALID_NODE_ID),
+      bits_storage_node_id(STORAGE_INVALID_NODE_ID),
+      links_storage_node_id(STORAGE_INVALID_NODE_ID),
+      max_key_id(MAP_MIN_KEY_ID - 1),
+      num_keys(0),
+      num_key_ids(0),
+      latest_link(INVALID_LINK),
+      mutex(MUTEX_UNLOCKED) {}
+
+}  // namespace hash_table
 }  // namespace map
 }  // namespace grnxx

  Copied: lib/grnxx/map/hash_table/header.hpp (+27 -5) 57%
===================================================================
--- lib/grnxx/map/array_map/dummy.cpp    2013-06-05 12:04:49 +0900 (1df8db3)
+++ lib/grnxx/map/hash_table/header.hpp    2013-06-05 13:36:17 +0900 (2266333)
@@ -15,15 +15,37 @@
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
-#include "grnxx/map/array_map/dummy.hpp"
+#ifndef GRNXX_MAP_HASH_TABLE_HEADER_HPP
+#define GRNXX_MAP_HASH_TABLE_HEADER_HPP
 
-#include "grnxx/map/array_map/bit_array.hpp"
-#include "grnxx/map/array_map/key_array.hpp"
+#include "grnxx/features.hpp"
+
+#include "grnxx/map.hpp"
+#include "grnxx/mutex.hpp"
+#include "grnxx/types.hpp"
 
 namespace grnxx {
 namespace map {
-namespace array_map {
+namespace hash_table {
+
+struct Header {
+  MapType map_type;
+  uint32_t key_ids_storage_node_id;
+  uint32_t old_key_ids_storage_node_id;
+  uint32_t keys_storage_node_id;
+  uint32_t bits_storage_node_id;
+  uint32_t links_storage_node_id;
+  int64_t max_key_id;
+  uint64_t num_keys;
+  uint64_t num_key_ids;
+  uint64_t latest_link;
+  Mutex mutex;
 
-}  // namespace array_map
+  Header();
+};
+
+}  // namespace hash_table
 }  // namespace map
 }  // namespace grnxx
+
+#endif  // GRNXX_MAP_HASH_TABLE_HEADER_HPP

  Modified: lib/grnxx/map/hash_table/link_array.hpp (+2 -0)
===================================================================
--- lib/grnxx/map/hash_table/link_array.hpp    2013-06-05 12:04:49 +0900 (40b98ac)
+++ lib/grnxx/map/hash_table/link_array.hpp    2013-06-05 13:36:17 +0900 (9779e07)
@@ -27,6 +27,8 @@ namespace grnxx {
 namespace map {
 namespace hash_table {
 
+constexpr uint64_t INVALID_LINK = uint64_t(-1);
+
 // Change the array size based on the size of "T".
 // Note that the size of link array is N/64 where N is the size of BitArray.
 template <typename T, size_t T_SIZE = sizeof(T)>
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index