summaryrefslogtreecommitdiff
path: root/libs/geometry/index/test/rtree/interprocess
diff options
context:
space:
mode:
Diffstat (limited to 'libs/geometry/index/test/rtree/interprocess')
-rw-r--r--libs/geometry/index/test/rtree/interprocess/Jamfile.v229
-rw-r--r--libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear.cpp20
-rw-r--r--libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear_dyn.cpp20
-rw-r--r--libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic.cpp20
-rw-r--r--libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic_dyn.cpp20
-rw-r--r--libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar.cpp20
-rw-r--r--libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar_dyn.cpp20
-rw-r--r--libs/geometry/index/test/rtree/interprocess/test_interprocess.hpp84
8 files changed, 233 insertions, 0 deletions
diff --git a/libs/geometry/index/test/rtree/interprocess/Jamfile.v2 b/libs/geometry/index/test/rtree/interprocess/Jamfile.v2
new file mode 100644
index 000000000..be709a43b
--- /dev/null
+++ b/libs/geometry/index/test/rtree/interprocess/Jamfile.v2
@@ -0,0 +1,29 @@
+# Boost.Geometry Index
+#
+# Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
+#
+# Use, modification and distribution is subject to the Boost Software License,
+# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+rule test_all
+{
+ local all_rules = ;
+
+ for local fileb in [ glob *.cpp ]
+ {
+ all_rules += [ run $(fileb) /boost/thread//boost_thread
+ : # additional args
+ : # test-files
+ : # requirements
+ <toolset>acc:<linkflags>-lrt
+ <toolset>acc-pa_risc:<linkflags>-lrt
+ <toolset>gcc-mingw:<linkflags>"-lole32 -loleaut32 -lpsapi -ladvapi32"
+ <host-os>hpux,<toolset>gcc:<linkflags>"-Wl,+as,mpas"
+ ] ;
+ }
+
+ return $(all_rules) ;
+}
+
+test-suite boost-geometry-index-rtree-interprocess : [ test_all r ] : <threading>multi ;
diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear.cpp
new file mode 100644
index 000000000..1a6077f41
--- /dev/null
+++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear.cpp
@@ -0,0 +1,20 @@
+// Boost.Geometry Index
+// Unit Test
+
+// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
+
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <rtree/interprocess/test_interprocess.hpp>
+
+int test_main(int, char* [])
+{
+ typedef bg::model::point<float, 2, bg::cs::cartesian> P2f;
+
+ testset::interprocess::modifiers<P2f>(bgi::linear<32, 8>());
+ testset::interprocess::additional<P2f>(bgi::linear<32, 8>());
+
+ return 0;
+}
diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear_dyn.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear_dyn.cpp
new file mode 100644
index 000000000..4823bbb57
--- /dev/null
+++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear_dyn.cpp
@@ -0,0 +1,20 @@
+// Boost.Geometry Index
+// Unit Test
+
+// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
+
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <rtree/interprocess/test_interprocess.hpp>
+
+int test_main(int, char* [])
+{
+ typedef bg::model::point<float, 2, bg::cs::cartesian> P2f;
+
+ testset::interprocess::modifiers<P2f>(bgi::dynamic_linear(32, 8));
+ testset::interprocess::additional<P2f>(bgi::dynamic_linear(32, 8));
+
+ return 0;
+}
diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic.cpp
new file mode 100644
index 000000000..8a8bea0e8
--- /dev/null
+++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic.cpp
@@ -0,0 +1,20 @@
+// Boost.Geometry Index
+// Unit Test
+
+// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
+
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <rtree/interprocess/test_interprocess.hpp>
+
+int test_main(int, char* [])
+{
+ typedef bg::model::point<float, 2, bg::cs::cartesian> P2f;
+
+ testset::interprocess::modifiers<P2f>(bgi::quadratic<32, 8>());
+ testset::interprocess::additional<P2f>(bgi::quadratic<32, 8>());
+
+ return 0;
+}
diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic_dyn.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic_dyn.cpp
new file mode 100644
index 000000000..b7710ef4b
--- /dev/null
+++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic_dyn.cpp
@@ -0,0 +1,20 @@
+// Boost.Geometry Index
+// Unit Test
+
+// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
+
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <rtree/interprocess/test_interprocess.hpp>
+
+int test_main(int, char* [])
+{
+ typedef bg::model::point<float, 2, bg::cs::cartesian> P2f;
+
+ testset::interprocess::modifiers<P2f>(bgi::dynamic_quadratic(32, 8));
+ testset::interprocess::additional<P2f>(bgi::dynamic_quadratic(32, 8));
+
+ return 0;
+}
diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar.cpp
new file mode 100644
index 000000000..8402bb0fc
--- /dev/null
+++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar.cpp
@@ -0,0 +1,20 @@
+// Boost.Geometry Index
+// Unit Test
+
+// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
+
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <rtree/interprocess/test_interprocess.hpp>
+
+int test_main(int, char* [])
+{
+ typedef bg::model::point<float, 2, bg::cs::cartesian> P2f;
+
+ testset::interprocess::modifiers<P2f>(bgi::rstar<32, 8>());
+ testset::interprocess::additional<P2f>(bgi::rstar<32, 8>());
+
+ return 0;
+}
diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar_dyn.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar_dyn.cpp
new file mode 100644
index 000000000..52c81e958
--- /dev/null
+++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar_dyn.cpp
@@ -0,0 +1,20 @@
+// Boost.Geometry Index
+// Unit Test
+
+// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
+
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <rtree/interprocess/test_interprocess.hpp>
+
+int test_main(int, char* [])
+{
+ typedef bg::model::point<float, 2, bg::cs::cartesian> P2f;
+
+ testset::interprocess::modifiers<P2f>(bgi::dynamic_rstar(32, 8));
+ testset::interprocess::additional<P2f>(bgi::dynamic_rstar(32, 8));
+
+ return 0;
+}
diff --git a/libs/geometry/index/test/rtree/interprocess/test_interprocess.hpp b/libs/geometry/index/test/rtree/interprocess/test_interprocess.hpp
new file mode 100644
index 000000000..471f9fa15
--- /dev/null
+++ b/libs/geometry/index/test/rtree/interprocess/test_interprocess.hpp
@@ -0,0 +1,84 @@
+// Boost.Geometry Index
+// Unit Test
+
+// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.
+
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <rtree/test_rtree.hpp>
+
+#include <boost/geometry/geometries/point.hpp>
+#include <boost/geometry/geometries/box.hpp>
+
+#include <boost/interprocess/managed_shared_memory.hpp>
+#include <boost/interprocess/allocators/allocator.hpp>
+
+template <typename Point, typename Parameters>
+void test_rtree_interprocess(Parameters const& parameters = Parameters())
+{
+ namespace bi = boost::interprocess;
+ struct shm_remove
+ {
+ shm_remove() { bi::shared_memory_object::remove("shmem"); }
+ ~shm_remove(){ bi::shared_memory_object::remove("shmem"); }
+ } remover;
+
+ bi::managed_shared_memory segment(bi::create_only, "shmem", 65535);
+ typedef bi::allocator<Point, bi::managed_shared_memory::segment_manager> shmem_alloc;
+
+ test_rtree_for_box<Point>(parameters, shmem_alloc(segment.get_segment_manager()));
+}
+
+namespace testset { namespace interprocess {
+
+template <typename Indexable, typename Parameters>
+void modifiers(Parameters const& parameters = Parameters())
+{
+ namespace bi = boost::interprocess;
+ struct shm_remove
+ {
+ shm_remove() { bi::shared_memory_object::remove("shmem"); }
+ ~shm_remove(){ bi::shared_memory_object::remove("shmem"); }
+ } remover;
+
+ bi::managed_shared_memory segment(bi::create_only, "shmem", 65535);
+ typedef bi::allocator<Indexable, bi::managed_shared_memory::segment_manager> shmem_alloc;
+
+ testset::modifiers<Indexable>(parameters, shmem_alloc(segment.get_segment_manager()));
+}
+
+template <typename Indexable, typename Parameters>
+void queries(Parameters const& parameters = Parameters())
+{
+ namespace bi = boost::interprocess;
+ struct shm_remove
+ {
+ shm_remove() { bi::shared_memory_object::remove("shmem"); }
+ ~shm_remove(){ bi::shared_memory_object::remove("shmem"); }
+ } remover;
+
+ bi::managed_shared_memory segment(bi::create_only, "shmem", 65535);
+ typedef bi::allocator<Indexable, bi::managed_shared_memory::segment_manager> shmem_alloc;
+
+ testset::queries<Indexable>(parameters, shmem_alloc(segment.get_segment_manager()));
+}
+
+template <typename Indexable, typename Parameters>
+void additional(Parameters const& parameters = Parameters())
+{
+ namespace bi = boost::interprocess;
+ struct shm_remove
+ {
+ shm_remove() { bi::shared_memory_object::remove("shmem"); }
+ ~shm_remove(){ bi::shared_memory_object::remove("shmem"); }
+ } remover;
+
+ bi::managed_shared_memory segment(bi::create_only, "shmem", 65535);
+ typedef bi::allocator<Indexable, bi::managed_shared_memory::segment_manager> shmem_alloc;
+
+ testset::additional<Indexable>(parameters, shmem_alloc(segment.get_segment_manager()));
+}
+
+}} \ No newline at end of file