passenger 4.0.60 → 5.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/.editorconfig +5 -0
- data/.travis.yml +3 -2
- data/CHANGELOG +31 -53
- data/CONTRIBUTING.md +4 -4
- data/CONTRIBUTORS +0 -1
- data/Gemfile +18 -0
- data/Gemfile.lock +41 -0
- data/Rakefile +16 -0
- data/bin/passenger +2 -2
- data/bin/passenger-install-apache2-module +12 -12
- data/bin/passenger-install-nginx-module +9 -14
- data/bin/passenger-status +125 -87
- data/build/agents.rb +112 -140
- data/build/apache2.rb +4 -9
- data/build/basics.rb +5 -3
- data/build/common_library.rb +1 -0
- data/build/cxx_tests.rb +69 -47
- data/build/debian.rb +4 -2
- data/build/documentation.rb +1 -0
- data/build/integration_tests.rb +28 -43
- data/build/misc.rb +0 -18
- data/build/nginx.rb +2 -6
- data/build/packaging.rb +33 -22
- data/build/preprocessor.rb +2 -4
- data/build/ruby_tests.rb +7 -26
- data/build/test_basics.rb +24 -25
- data/debian.template/control.template +2 -2
- data/debian.template/locations.ini.template +2 -3
- data/debian.template/passenger.install.template +2 -2
- data/debian.template/rules.template +1 -1
- data/dev/ci/run_jenkins.sh +0 -1
- data/dev/ci/run_rpm_tests.sh +3 -0
- data/dev/ci/run_travis.sh +63 -17
- data/dev/copy_boost_headers +22 -6
- data/dev/ruby_server.rb +244 -0
- data/dev/vagrant/provision.sh +3 -1
- data/doc/DebuggingAndStressTesting.md +3 -3
- data/doc/Design and Architecture.txt +5 -6
- data/doc/Packaging.txt.md +35 -6
- data/doc/ServerOptimizationGuide.txt.md +339 -0
- data/doc/Users guide Apache.idmap.txt +177 -187
- data/doc/Users guide Apache.txt +143 -219
- data/doc/Users guide Nginx.idmap.txt +166 -166
- data/doc/Users guide Nginx.txt +265 -223
- data/doc/Users guide Standalone.txt +3 -3
- data/doc/templates/markdown.html.erb +37 -6
- data/doc/users_guide_snippets/environment_variables.txt +1 -1
- data/doc/users_guide_snippets/support_information.txt +1 -1
- data/doc/users_guide_snippets/tips.txt +2 -2
- data/ext/apache2/Configuration.cpp +23 -81
- data/ext/apache2/Configuration.hpp +18 -92
- data/ext/apache2/ConfigurationCommands.cpp +64 -15
- data/ext/apache2/ConfigurationCommands.cpp.erb +8 -4
- data/ext/apache2/ConfigurationFields.hpp +12 -0
- data/ext/apache2/ConfigurationSetters.cpp +73 -1
- data/ext/apache2/ConfigurationSetters.cpp.erb +3 -2
- data/ext/apache2/CreateDirConfig.cpp +6 -0
- data/ext/apache2/DirectoryMapper.h +11 -6
- data/ext/apache2/Hooks.cpp +291 -408
- data/ext/apache2/MergeDirConfig.cpp +42 -0
- data/ext/apache2/SetHeaders.cpp +61 -16
- data/ext/apache2/SetHeaders.cpp.erb +9 -7
- data/ext/boost/container/allocator_traits.hpp +400 -0
- data/ext/boost/container/deque.hpp +2012 -0
- data/ext/boost/container/detail/adaptive_node_pool_impl.hpp +874 -0
- data/ext/boost/container/detail/advanced_insert_int.hpp +369 -0
- data/ext/boost/container/detail/algorithms.hpp +84 -0
- data/ext/boost/container/detail/allocation_type.hpp +54 -0
- data/ext/boost/container/detail/allocator_version_traits.hpp +163 -0
- data/ext/boost/container/detail/config_begin.hpp +49 -0
- data/ext/boost/container/detail/config_end.hpp +17 -0
- data/ext/boost/container/detail/destroyers.hpp +365 -0
- data/ext/boost/container/detail/flat_tree.hpp +1055 -0
- data/ext/boost/container/detail/function_detector.hpp +88 -0
- data/ext/boost/container/detail/iterators.hpp +611 -0
- data/ext/boost/container/detail/math_functions.hpp +113 -0
- data/ext/boost/container/detail/memory_util.hpp +83 -0
- data/ext/boost/container/detail/mpl.hpp +160 -0
- data/ext/boost/container/detail/multiallocation_chain.hpp +286 -0
- data/ext/boost/container/detail/node_alloc_holder.hpp +386 -0
- data/ext/boost/container/detail/node_pool_impl.hpp +365 -0
- data/ext/boost/container/detail/pair.hpp +354 -0
- data/ext/boost/container/detail/pool_common.hpp +52 -0
- data/ext/boost/container/detail/preprocessor.hpp +232 -0
- data/ext/boost/container/detail/transform_iterator.hpp +176 -0
- data/ext/boost/container/detail/tree.hpp +1134 -0
- data/ext/boost/container/detail/type_traits.hpp +210 -0
- data/ext/boost/container/detail/utilities.hpp +1141 -0
- data/ext/boost/container/detail/value_init.hpp +45 -0
- data/ext/boost/container/detail/variadic_templates_tools.hpp +153 -0
- data/ext/boost/container/detail/version_type.hpp +92 -0
- data/ext/boost/container/detail/workaround.hpp +44 -0
- data/ext/boost/container/flat_map.hpp +1674 -0
- data/ext/boost/container/flat_set.hpp +1408 -0
- data/ext/boost/container/list.hpp +1475 -0
- data/ext/boost/container/map.hpp +1508 -0
- data/ext/boost/container/scoped_allocator.hpp +1503 -0
- data/ext/boost/container/scoped_allocator_fwd.hpp +83 -0
- data/ext/boost/container/set.hpp +1280 -0
- data/ext/boost/container/slist.hpp +1706 -0
- data/ext/boost/container/stable_vector.hpp +1869 -0
- data/ext/boost/container/static_vector.hpp +1053 -0
- data/ext/boost/container/string.hpp +2856 -0
- data/ext/boost/container/throw_exception.hpp +110 -0
- data/ext/boost/container/vector.hpp +2671 -0
- data/ext/boost/detail/is_xxx.hpp +61 -0
- data/ext/boost/intrusive/any_hook.hpp +344 -0
- data/ext/boost/intrusive/avl_set.hpp +2528 -0
- data/ext/boost/intrusive/avl_set_hook.hpp +297 -0
- data/ext/boost/intrusive/avltree.hpp +1786 -0
- data/ext/boost/intrusive/avltree_algorithms.hpp +968 -0
- data/ext/boost/intrusive/bs_set_hook.hpp +296 -0
- data/ext/boost/intrusive/circular_list_algorithms.hpp +413 -0
- data/ext/boost/intrusive/circular_slist_algorithms.hpp +404 -0
- data/ext/boost/intrusive/derivation_value_traits.hpp +70 -0
- data/ext/boost/intrusive/detail/any_node_and_algorithms.hpp +297 -0
- data/ext/boost/intrusive/detail/assert.hpp +41 -0
- data/ext/boost/intrusive/detail/avltree_node.hpp +197 -0
- data/ext/boost/intrusive/detail/clear_on_destructor_base.hpp +36 -0
- data/ext/boost/intrusive/detail/common_slist_algorithms.hpp +102 -0
- data/ext/boost/intrusive/detail/config_begin.hpp +52 -0
- data/ext/boost/intrusive/detail/config_end.hpp +15 -0
- data/ext/boost/intrusive/detail/ebo_functor_holder.hpp +95 -0
- data/ext/boost/intrusive/detail/function_detector.hpp +88 -0
- data/ext/boost/intrusive/detail/generic_hook.hpp +209 -0
- data/ext/boost/intrusive/detail/has_member_function_callable_with.hpp +357 -0
- data/ext/boost/intrusive/detail/hashtable_node.hpp +249 -0
- data/ext/boost/intrusive/detail/is_stateful_value_traits.hpp +77 -0
- data/ext/boost/intrusive/detail/list_node.hpp +196 -0
- data/ext/boost/intrusive/detail/memory_util.hpp +288 -0
- data/ext/boost/intrusive/detail/mpl.hpp +383 -0
- data/ext/boost/intrusive/detail/parent_from_member.hpp +97 -0
- data/ext/boost/intrusive/detail/preprocessor.hpp +52 -0
- data/ext/boost/intrusive/detail/rbtree_node.hpp +201 -0
- data/ext/boost/intrusive/detail/slist_node.hpp +166 -0
- data/ext/boost/intrusive/detail/transform_iterator.hpp +173 -0
- data/ext/boost/intrusive/detail/tree_algorithms.hpp +1742 -0
- data/ext/boost/intrusive/detail/tree_node.hpp +199 -0
- data/ext/boost/intrusive/detail/utilities.hpp +858 -0
- data/ext/boost/intrusive/detail/workaround.hpp +22 -0
- data/ext/boost/intrusive/hashtable.hpp +3110 -0
- data/ext/boost/intrusive/intrusive_fwd.hpp +542 -0
- data/ext/boost/intrusive/linear_slist_algorithms.hpp +327 -0
- data/ext/boost/intrusive/link_mode.hpp +46 -0
- data/ext/boost/intrusive/list.hpp +1525 -0
- data/ext/boost/intrusive/list_hook.hpp +290 -0
- data/ext/boost/intrusive/member_value_traits.hpp +70 -0
- data/ext/boost/intrusive/options.hpp +810 -0
- data/ext/boost/intrusive/parent_from_member.hpp +42 -0
- data/ext/boost/intrusive/pointer_plus_bits.hpp +86 -0
- data/ext/boost/intrusive/pointer_traits.hpp +265 -0
- data/ext/boost/intrusive/priority_compare.hpp +39 -0
- data/ext/boost/intrusive/rbtree.hpp +1785 -0
- data/ext/boost/intrusive/rbtree_algorithms.hpp +934 -0
- data/ext/boost/intrusive/set.hpp +2554 -0
- data/ext/boost/intrusive/set_hook.hpp +300 -0
- data/ext/boost/intrusive/sg_set.hpp +2601 -0
- data/ext/boost/intrusive/sgtree.hpp +2009 -0
- data/ext/boost/intrusive/sgtree_algorithms.hpp +807 -0
- data/ext/boost/intrusive/slist.hpp +2219 -0
- data/ext/boost/intrusive/slist_hook.hpp +294 -0
- data/ext/boost/intrusive/splay_set.hpp +2575 -0
- data/ext/boost/intrusive/splay_set_hook.hpp +292 -0
- data/ext/boost/intrusive/splaytree.hpp +1784 -0
- data/ext/boost/intrusive/splaytree_algorithms.hpp +1008 -0
- data/ext/boost/intrusive/treap.hpp +1882 -0
- data/ext/boost/intrusive/treap_algorithms.hpp +919 -0
- data/ext/boost/intrusive/treap_set.hpp +2751 -0
- data/ext/boost/intrusive/trivial_value_traits.hpp +46 -0
- data/ext/boost/intrusive/unordered_set.hpp +2115 -0
- data/ext/boost/intrusive/unordered_set_hook.hpp +434 -0
- data/ext/boost/intrusive_ptr.hpp +18 -0
- data/ext/boost/math/common_factor_ct.hpp +180 -0
- data/ext/boost/math_fwd.hpp +108 -0
- data/ext/boost/move/detail/move_helpers.hpp +175 -0
- data/ext/boost/parameter.hpp +21 -0
- data/ext/boost/parameter/aux_/arg_list.hpp +459 -0
- data/ext/boost/parameter/aux_/cast.hpp +143 -0
- data/ext/boost/parameter/aux_/default.hpp +69 -0
- data/ext/boost/parameter/aux_/is_maybe.hpp +26 -0
- data/ext/boost/parameter/aux_/maybe.hpp +120 -0
- data/ext/boost/parameter/aux_/overloads.hpp +88 -0
- data/ext/boost/parameter/aux_/parameter_requirements.hpp +25 -0
- data/ext/boost/parameter/aux_/parenthesized_type.hpp +119 -0
- data/ext/boost/parameter/aux_/preprocessor/flatten.hpp +115 -0
- data/ext/boost/parameter/aux_/preprocessor/for_each.hpp +103 -0
- data/ext/boost/parameter/aux_/python/invoker.hpp +132 -0
- data/ext/boost/parameter/aux_/python/invoker_iterate.hpp +93 -0
- data/ext/boost/parameter/aux_/result_of0.hpp +36 -0
- data/ext/boost/parameter/aux_/set.hpp +67 -0
- data/ext/boost/parameter/aux_/tag.hpp +38 -0
- data/ext/boost/parameter/aux_/tagged_argument.hpp +188 -0
- data/ext/boost/parameter/aux_/template_keyword.hpp +47 -0
- data/ext/boost/parameter/aux_/unwrap_cv_reference.hpp +97 -0
- data/ext/boost/parameter/aux_/void.hpp +29 -0
- data/ext/boost/parameter/aux_/yesno.hpp +26 -0
- data/ext/boost/parameter/binding.hpp +106 -0
- data/ext/boost/parameter/config.hpp +14 -0
- data/ext/boost/parameter/keyword.hpp +152 -0
- data/ext/boost/parameter/macros.hpp +99 -0
- data/ext/boost/parameter/match.hpp +55 -0
- data/ext/boost/parameter/name.hpp +156 -0
- data/ext/boost/parameter/parameters.hpp +931 -0
- data/ext/boost/parameter/preprocessor.hpp +1178 -0
- data/ext/boost/parameter/python.hpp +735 -0
- data/ext/boost/parameter/value_type.hpp +108 -0
- data/ext/boost/pool/detail/for.m4 +107 -0
- data/ext/boost/pool/detail/guard.hpp +69 -0
- data/ext/boost/pool/detail/mutex.hpp +42 -0
- data/ext/boost/pool/detail/pool_construct.bat +24 -0
- data/ext/boost/pool/detail/pool_construct.ipp +852 -0
- data/ext/boost/pool/detail/pool_construct.m4 +84 -0
- data/ext/boost/pool/detail/pool_construct.sh +12 -0
- data/ext/boost/pool/detail/pool_construct_simple.bat +25 -0
- data/ext/boost/pool/detail/pool_construct_simple.ipp +43 -0
- data/ext/boost/pool/detail/pool_construct_simple.m4 +72 -0
- data/ext/boost/pool/detail/pool_construct_simple.sh +12 -0
- data/ext/boost/pool/object_pool.hpp +287 -0
- data/ext/boost/pool/pool.hpp +1024 -0
- data/ext/boost/pool/pool_alloc.hpp +488 -0
- data/ext/boost/pool/poolfwd.hpp +82 -0
- data/ext/boost/pool/simple_segregated_storage.hpp +377 -0
- data/ext/boost/pool/singleton_pool.hpp +251 -0
- data/ext/boost/preprocessor/arithmetic.hpp +25 -0
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
- data/ext/boost/preprocessor/arithmetic/div.hpp +39 -0
- data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
- data/ext/boost/preprocessor/arithmetic/mul.hpp +53 -0
- data/ext/boost/preprocessor/array.hpp +32 -0
- data/ext/boost/preprocessor/array/enum.hpp +33 -0
- data/ext/boost/preprocessor/array/insert.hpp +55 -0
- data/ext/boost/preprocessor/array/pop_back.hpp +37 -0
- data/ext/boost/preprocessor/array/pop_front.hpp +38 -0
- data/ext/boost/preprocessor/array/push_back.hpp +33 -0
- data/ext/boost/preprocessor/array/push_front.hpp +33 -0
- data/ext/boost/preprocessor/array/remove.hpp +54 -0
- data/ext/boost/preprocessor/array/replace.hpp +49 -0
- data/ext/boost/preprocessor/array/reverse.hpp +29 -0
- data/ext/boost/preprocessor/array/to_list.hpp +33 -0
- data/ext/boost/preprocessor/array/to_seq.hpp +33 -0
- data/ext/boost/preprocessor/array/to_tuple.hpp +22 -0
- data/ext/boost/preprocessor/assert_msg.hpp +17 -0
- data/ext/boost/preprocessor/comma.hpp +17 -0
- data/ext/boost/preprocessor/comparison.hpp +24 -0
- data/ext/boost/preprocessor/comparison/equal.hpp +34 -0
- data/ext/boost/preprocessor/comparison/greater.hpp +38 -0
- data/ext/boost/preprocessor/comparison/greater_equal.hpp +38 -0
- data/ext/boost/preprocessor/comparison/less.hpp +46 -0
- data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
- data/ext/boost/preprocessor/comparison/not_equal.hpp +814 -0
- data/ext/boost/preprocessor/config/limits.hpp +30 -0
- data/ext/boost/preprocessor/control.hpp +22 -0
- data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
- data/ext/boost/preprocessor/control/detail/dmc/while.hpp +536 -0
- data/ext/boost/preprocessor/control/detail/edg/while.hpp +534 -0
- data/ext/boost/preprocessor/control/detail/msvc/while.hpp +277 -0
- data/ext/boost/preprocessor/control/expr_if.hpp +30 -0
- data/ext/boost/preprocessor/debug.hpp +18 -0
- data/ext/boost/preprocessor/debug/assert.hpp +44 -0
- data/ext/boost/preprocessor/debug/line.hpp +35 -0
- data/ext/boost/preprocessor/detail/dmc/auto_rec.hpp +286 -0
- data/ext/boost/preprocessor/detail/is_nullary.hpp +30 -0
- data/ext/boost/preprocessor/detail/is_unary.hpp +30 -0
- data/ext/boost/preprocessor/detail/null.hpp +17 -0
- data/ext/boost/preprocessor/detail/split.hpp +35 -0
- data/ext/boost/preprocessor/enum_params_with_defaults.hpp +17 -0
- data/ext/boost/preprocessor/enum_shifted.hpp +17 -0
- data/ext/boost/preprocessor/expand.hpp +17 -0
- data/ext/boost/preprocessor/expr_if.hpp +17 -0
- data/ext/boost/preprocessor/facilities.hpp +23 -0
- data/ext/boost/preprocessor/facilities/apply.hpp +34 -0
- data/ext/boost/preprocessor/facilities/expand.hpp +28 -0
- data/ext/boost/preprocessor/facilities/is_1.hpp +23 -0
- data/ext/boost/preprocessor/facilities/is_empty.hpp +43 -0
- data/ext/boost/preprocessor/facilities/is_empty_or_1.hpp +30 -0
- data/ext/boost/preprocessor/for.hpp +17 -0
- data/ext/boost/preprocessor/if.hpp +17 -0
- data/ext/boost/preprocessor/iteration.hpp +19 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower3.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower4.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/lower5.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper3.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper4.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/bounds/upper5.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/finish.hpp +99 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward3.hpp +1338 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward4.hpp +1338 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward5.hpp +1338 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse2.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse3.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse4.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/iter/reverse5.hpp +1296 -0
- data/ext/boost/preprocessor/iteration/detail/local.hpp +812 -0
- data/ext/boost/preprocessor/iteration/detail/rlocal.hpp +782 -0
- data/ext/boost/preprocessor/iteration/detail/self.hpp +21 -0
- data/ext/boost/preprocessor/iteration/detail/start.hpp +99 -0
- data/ext/boost/preprocessor/iteration/local.hpp +26 -0
- data/ext/boost/preprocessor/iteration/self.hpp +19 -0
- data/ext/boost/preprocessor/library.hpp +36 -0
- data/ext/boost/preprocessor/limits.hpp +17 -0
- data/ext/boost/preprocessor/list.hpp +37 -0
- data/ext/boost/preprocessor/list/at.hpp +39 -0
- data/ext/boost/preprocessor/list/cat.hpp +42 -0
- data/ext/boost/preprocessor/list/detail/dmc/fold_left.hpp +279 -0
- data/ext/boost/preprocessor/list/detail/edg/fold_left.hpp +536 -0
- data/ext/boost/preprocessor/list/detail/edg/fold_right.hpp +794 -0
- data/ext/boost/preprocessor/list/enum.hpp +41 -0
- data/ext/boost/preprocessor/list/filter.hpp +54 -0
- data/ext/boost/preprocessor/list/first_n.hpp +58 -0
- data/ext/boost/preprocessor/list/for_each.hpp +49 -0
- data/ext/boost/preprocessor/list/for_each_product.hpp +141 -0
- data/ext/boost/preprocessor/list/rest_n.hpp +55 -0
- data/ext/boost/preprocessor/list/size.hpp +58 -0
- data/ext/boost/preprocessor/list/to_array.hpp +123 -0
- data/ext/boost/preprocessor/list/to_seq.hpp +32 -0
- data/ext/boost/preprocessor/list/to_tuple.hpp +38 -0
- data/ext/boost/preprocessor/logical.hpp +29 -0
- data/ext/boost/preprocessor/logical/bitnor.hpp +38 -0
- data/ext/boost/preprocessor/logical/bitor.hpp +38 -0
- data/ext/boost/preprocessor/logical/bitxor.hpp +38 -0
- data/ext/boost/preprocessor/logical/nor.hpp +30 -0
- data/ext/boost/preprocessor/logical/not.hpp +30 -0
- data/ext/boost/preprocessor/logical/or.hpp +30 -0
- data/ext/boost/preprocessor/logical/xor.hpp +30 -0
- data/ext/boost/preprocessor/max.hpp +17 -0
- data/ext/boost/preprocessor/min.hpp +17 -0
- data/ext/boost/preprocessor/punctuation.hpp +20 -0
- data/ext/boost/preprocessor/punctuation/paren_if.hpp +38 -0
- data/ext/boost/preprocessor/repeat_3rd.hpp +17 -0
- data/ext/boost/preprocessor/repeat_from_to.hpp +17 -0
- data/ext/boost/preprocessor/repeat_from_to_2nd.hpp +17 -0
- data/ext/boost/preprocessor/repeat_from_to_3rd.hpp +17 -0
- data/ext/boost/preprocessor/repetition.hpp +32 -0
- data/ext/boost/preprocessor/repetition/deduce_r.hpp +22 -0
- data/ext/boost/preprocessor/repetition/deduce_z.hpp +22 -0
- data/ext/boost/preprocessor/repetition/detail/dmc/for.hpp +536 -0
- data/ext/boost/preprocessor/repetition/detail/edg/for.hpp +534 -0
- data/ext/boost/preprocessor/repetition/detail/msvc/for.hpp +277 -0
- data/ext/boost/preprocessor/repetition/enum_params_with_defaults.hpp +24 -0
- data/ext/boost/preprocessor/repetition/enum_shifted.hpp +68 -0
- data/ext/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +51 -0
- data/ext/boost/preprocessor/repetition/enum_trailing.hpp +63 -0
- data/ext/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +53 -0
- data/ext/boost/preprocessor/selection.hpp +18 -0
- data/ext/boost/preprocessor/selection/max.hpp +39 -0
- data/ext/boost/preprocessor/selection/min.hpp +39 -0
- data/ext/boost/preprocessor/seq.hpp +43 -0
- data/ext/boost/preprocessor/seq/cat.hpp +49 -0
- data/ext/boost/preprocessor/seq/detail/binary_transform.hpp +40 -0
- data/ext/boost/preprocessor/seq/detail/split.hpp +284 -0
- data/ext/boost/preprocessor/seq/filter.hpp +54 -0
- data/ext/boost/preprocessor/seq/first_n.hpp +30 -0
- data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
- data/ext/boost/preprocessor/seq/fold_right.hpp +288 -0
- data/ext/boost/preprocessor/seq/for_each.hpp +60 -0
- data/ext/boost/preprocessor/seq/for_each_product.hpp +126 -0
- data/ext/boost/preprocessor/seq/insert.hpp +28 -0
- data/ext/boost/preprocessor/seq/pop_back.hpp +29 -0
- data/ext/boost/preprocessor/seq/pop_front.hpp +27 -0
- data/ext/boost/preprocessor/seq/push_back.hpp +19 -0
- data/ext/boost/preprocessor/seq/push_front.hpp +19 -0
- data/ext/boost/preprocessor/seq/remove.hpp +29 -0
- data/ext/boost/preprocessor/seq/replace.hpp +29 -0
- data/ext/boost/preprocessor/seq/rest_n.hpp +30 -0
- data/ext/boost/preprocessor/seq/reverse.hpp +39 -0
- data/ext/boost/preprocessor/seq/subseq.hpp +28 -0
- data/ext/boost/preprocessor/seq/to_array.hpp +28 -0
- data/ext/boost/preprocessor/seq/to_list.hpp +29 -0
- data/ext/boost/preprocessor/seq/to_tuple.hpp +27 -0
- data/ext/boost/preprocessor/seq/transform.hpp +48 -0
- data/ext/boost/preprocessor/slot.hpp +17 -0
- data/ext/boost/preprocessor/slot/counter.hpp +25 -0
- data/ext/boost/preprocessor/slot/detail/counter.hpp +269 -0
- data/ext/boost/preprocessor/slot/detail/slot1.hpp +267 -0
- data/ext/boost/preprocessor/slot/detail/slot2.hpp +267 -0
- data/ext/boost/preprocessor/slot/detail/slot3.hpp +267 -0
- data/ext/boost/preprocessor/slot/detail/slot4.hpp +267 -0
- data/ext/boost/preprocessor/slot/detail/slot5.hpp +267 -0
- data/ext/boost/preprocessor/tuple.hpp +28 -0
- data/ext/boost/preprocessor/tuple/enum.hpp +22 -0
- data/ext/boost/preprocessor/tuple/reverse.hpp +114 -0
- data/ext/boost/preprocessor/tuple/size.hpp +28 -0
- data/ext/boost/preprocessor/tuple/to_array.hpp +37 -0
- data/ext/boost/preprocessor/tuple/to_seq.hpp +114 -0
- data/ext/boost/preprocessor/variadic.hpp +23 -0
- data/ext/boost/preprocessor/variadic/to_array.hpp +32 -0
- data/ext/boost/preprocessor/variadic/to_list.hpp +25 -0
- data/ext/boost/preprocessor/variadic/to_seq.hpp +25 -0
- data/ext/boost/preprocessor/variadic/to_tuple.hpp +24 -0
- data/ext/boost/preprocessor/while.hpp +17 -0
- data/ext/boost/preprocessor/wstringize.hpp +29 -0
- data/ext/boost/smart_ptr/intrusive_ptr.hpp +324 -0
- data/ext/common/AccountsDatabase.h +3 -4
- data/ext/common/AgentsStarter.cpp +12 -15
- data/ext/common/AgentsStarter.h +54 -120
- data/ext/common/ApplicationPool2/AppTypes.cpp +12 -5
- data/ext/common/ApplicationPool2/AppTypes.h +21 -14
- data/ext/common/ApplicationPool2/Common.h +36 -19
- data/ext/common/ApplicationPool2/DirectSpawner.h +15 -16
- data/ext/common/ApplicationPool2/DummySpawner.h +9 -8
- data/ext/common/ApplicationPool2/ErrorRenderer.h +1 -1
- data/ext/common/ApplicationPool2/Group.h +304 -171
- data/ext/common/ApplicationPool2/Implementation.cpp +234 -125
- data/ext/common/ApplicationPool2/Options.h +50 -62
- data/ext/common/ApplicationPool2/Pool.h +285 -189
- data/ext/common/ApplicationPool2/Process.h +126 -115
- data/ext/common/ApplicationPool2/Session.h +70 -30
- data/ext/common/ApplicationPool2/SmartSpawner.h +19 -18
- data/ext/common/ApplicationPool2/Socket.h +57 -43
- data/ext/common/ApplicationPool2/SpawnObject.h +83 -0
- data/ext/common/ApplicationPool2/Spawner.h +59 -38
- data/ext/common/ApplicationPool2/SpawnerFactory.h +8 -14
- data/ext/common/ApplicationPool2/SuperGroup.h +69 -40
- data/ext/common/BackgroundEventLoop.cpp +48 -1
- data/ext/common/BackgroundEventLoop.h +3 -1
- data/ext/common/Constants.h +30 -8
- data/ext/common/DataStructures/HashedStaticString.h +103 -0
- data/ext/common/DataStructures/LString.h +396 -0
- data/ext/common/DataStructures/StringKeyTable.h +588 -0
- data/ext/common/EventedMessageServer.h +1 -0
- data/ext/common/FileDescriptor.h +5 -0
- data/ext/common/InstanceDirectory.h +240 -0
- data/ext/common/Logging.cpp +38 -13
- data/ext/common/Logging.h +53 -22
- data/ext/common/MemoryKit/mbuf.cpp +413 -0
- data/ext/common/MemoryKit/mbuf.h +266 -0
- data/ext/common/MemoryKit/palloc.cpp +337 -0
- data/ext/common/MemoryKit/palloc.h +121 -0
- data/ext/common/ResourceLocator.h +62 -6
- data/ext/common/SafeLibev.h +4 -4
- data/ext/common/ServerKit/AcceptLoadBalancer.h +275 -0
- data/ext/common/ServerKit/Channel.h +747 -0
- data/ext/common/ServerKit/Client.h +166 -0
- data/ext/common/ServerKit/ClientRef.h +130 -0
- data/ext/common/ServerKit/Context.h +129 -0
- data/ext/common/ServerKit/Errors.h +103 -0
- data/ext/common/ServerKit/FdSinkChannel.h +206 -0
- data/ext/common/ServerKit/FdSourceChannel.h +230 -0
- data/ext/common/ServerKit/FileBufferedChannel.h +1399 -0
- data/ext/common/ServerKit/FileBufferedFdSinkChannel.h +228 -0
- data/ext/common/ServerKit/HeaderTable.h +472 -0
- data/ext/common/ServerKit/Hooks.h +79 -0
- data/ext/common/ServerKit/HttpChunkedBodyParser.h +289 -0
- data/ext/common/ServerKit/HttpChunkedBodyParserState.h +70 -0
- data/ext/common/ServerKit/HttpClient.h +94 -0
- data/ext/common/ServerKit/HttpHeaderParser.h +477 -0
- data/ext/common/ServerKit/HttpHeaderParserState.h +60 -0
- data/ext/common/ServerKit/HttpRequest.h +276 -0
- data/ext/common/ServerKit/HttpRequestRef.h +130 -0
- data/ext/common/ServerKit/HttpServer.h +1152 -0
- data/ext/common/ServerKit/Implementation.cpp +47 -0
- data/ext/common/ServerKit/Server.h +1040 -0
- data/ext/common/ServerKit/http_parser.cpp +2259 -0
- data/ext/common/ServerKit/http_parser.h +330 -0
- data/ext/common/StaticString.h +8 -0
- data/ext/common/Utils.cpp +14 -12
- data/ext/common/Utils.h +9 -103
- data/ext/common/Utils/BufferedIO.h +1 -0
- data/ext/common/Utils/CachedFileStat.hpp +1 -7
- data/ext/common/Utils/DateParsing.h +379 -0
- data/ext/common/Utils/FileChangeChecker.h +3 -9
- data/ext/common/Utils/Hasher.cpp +52 -0
- data/ext/common/Utils/Hasher.h +58 -0
- data/ext/common/Utils/IOUtils.cpp +62 -62
- data/ext/common/Utils/JsonUtils.h +21 -0
- data/ext/common/Utils/OptionParsing.h +75 -0
- data/ext/common/Utils/StrIntUtils.cpp +112 -19
- data/ext/common/Utils/StrIntUtils.h +52 -12
- data/ext/common/Utils/StrIntUtilsNoStrictAliasing.cpp +174 -0
- data/ext/common/Utils/VariantMap.h +18 -7
- data/ext/common/Utils/modp_b64.cpp +290 -0
- data/ext/common/Utils/modp_b64.h +241 -0
- data/ext/common/Utils/modp_b64_data.h +479 -0
- data/ext/common/Utils/sysqueue.h +811 -0
- data/ext/common/agents/Base.cpp +71 -98
- data/ext/common/agents/Base.h +11 -3
- data/ext/common/agents/HelperAgent/AdminServer.h +690 -0
- data/ext/common/agents/HelperAgent/Main.cpp +899 -487
- data/ext/common/agents/HelperAgent/OptionParser.h +311 -0
- data/ext/common/agents/HelperAgent/RequestHandler.h +315 -2548
- data/ext/common/agents/HelperAgent/RequestHandler/AppResponse.h +225 -0
- data/ext/common/agents/HelperAgent/RequestHandler/BufferBody.cpp +93 -0
- data/ext/common/agents/HelperAgent/RequestHandler/CheckoutSession.cpp +346 -0
- data/ext/common/agents/HelperAgent/RequestHandler/Client.h +54 -0
- data/ext/common/agents/HelperAgent/RequestHandler/ForwardResponse.cpp +846 -0
- data/ext/common/agents/HelperAgent/RequestHandler/Hooks.cpp +231 -0
- data/ext/common/agents/HelperAgent/RequestHandler/InitRequest.cpp +434 -0
- data/ext/common/agents/HelperAgent/RequestHandler/Request.h +149 -0
- data/ext/common/agents/HelperAgent/RequestHandler/SendRequest.cpp +887 -0
- data/ext/common/agents/HelperAgent/RequestHandler/TurboCaching.h +293 -0
- data/ext/common/agents/HelperAgent/RequestHandler/Utils.cpp +301 -0
- data/ext/common/agents/HelperAgent/ResponseCache.h +624 -0
- data/ext/common/agents/HelperAgent/SystemMetricsTool.cpp +21 -23
- data/ext/common/agents/LoggingAgent/AdminServer.h +369 -0
- data/ext/common/agents/LoggingAgent/LoggingServer.h +1 -0
- data/ext/common/agents/LoggingAgent/Main.cpp +422 -215
- data/ext/common/agents/LoggingAgent/OptionParser.h +167 -0
- data/ext/common/agents/LoggingAgent/RemoteSender.h +3 -3
- data/ext/common/agents/Main.cpp +107 -0
- data/ext/common/agents/SpawnPreparer/Main.cpp +207 -0
- data/ext/common/agents/TempDirToucher/Main.cpp +429 -0
- data/ext/common/agents/Watchdog/AdminServer.h +390 -0
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +7 -5
- data/ext/common/agents/Watchdog/HelperAgentWatcher.cpp +18 -39
- data/ext/common/agents/Watchdog/InstanceDirToucher.cpp +116 -0
- data/ext/common/agents/Watchdog/LoggingAgentWatcher.cpp +13 -17
- data/ext/common/agents/Watchdog/Main.cpp +743 -202
- data/ext/libeio/eio.c +17 -0
- data/ext/libeio/eio.h +2 -0
- data/ext/nginx/CacheLocationConfig.c +177 -198
- data/ext/nginx/CacheLocationConfig.c.erb +35 -22
- data/ext/nginx/Configuration.c +402 -236
- data/ext/nginx/Configuration.h +12 -5
- data/ext/nginx/ConfigurationCommands.c +35 -15
- data/ext/nginx/ConfigurationCommands.c.erb +4 -4
- data/ext/nginx/ConfigurationFields.h +9 -5
- data/ext/nginx/ConfigurationFields.h.erb +3 -1
- data/ext/nginx/ContentHandler.c +393 -362
- data/ext/nginx/CreateLocationConfig.c +8 -4
- data/ext/nginx/CreateLocationConfig.c.erb +8 -3
- data/ext/nginx/MergeLocationConfig.c +36 -6
- data/ext/nginx/MergeLocationConfig.c.erb +42 -1
- data/ext/nginx/ngx_http_passenger_module.c +28 -15
- data/ext/oxt/detail/backtrace_disabled.hpp +2 -1
- data/ext/oxt/detail/backtrace_enabled.hpp +15 -2
- data/ext/oxt/implementation.cpp +92 -20
- data/ext/oxt/thread.hpp +5 -0
- data/ext/ruby/extconf.rb +3 -6
- data/ext/ruby/passenger_native_support.c +13 -40
- data/helper-scripts/download_binaries/extconf.rb +4 -4
- data/helper-scripts/meteor-loader.rb +12 -112
- data/helper-scripts/node-loader.js +3 -91
- data/helper-scripts/rack-loader.rb +13 -14
- data/helper-scripts/rack-preloader.rb +16 -17
- data/helper-scripts/wsgi-loader.py +11 -7
- data/lib/phusion_passenger.rb +100 -79
- data/lib/phusion_passenger/abstract_installer.rb +28 -3
- data/lib/phusion_passenger/admin_tools.rb +3 -3
- data/lib/phusion_passenger/admin_tools/instance.rb +207 -0
- data/lib/phusion_passenger/admin_tools/instance_registry.rb +98 -0
- data/lib/phusion_passenger/apache2/config_options.rb +72 -22
- data/lib/phusion_passenger/common_library.rb +79 -14
- data/lib/phusion_passenger/config/about_command.rb +17 -23
- data/lib/phusion_passenger/config/admin_command_command.rb +175 -0
- data/lib/phusion_passenger/config/agent_compiler.rb +170 -0
- data/lib/phusion_passenger/config/command.rb +1 -4
- data/lib/phusion_passenger/config/compile_agent_command.rb +102 -0
- data/lib/phusion_passenger/config/compile_nginx_engine_command.rb +112 -0
- data/lib/phusion_passenger/config/detach_process_command.rb +32 -10
- data/lib/phusion_passenger/config/download_agent_command.rb +285 -0
- data/lib/phusion_passenger/config/download_nginx_engine_command.rb +281 -0
- data/lib/phusion_passenger/config/install_agent_command.rb +174 -0
- data/lib/phusion_passenger/config/install_standalone_runtime_command.rb +231 -0
- data/lib/phusion_passenger/config/installation_utils.rb +241 -0
- data/lib/phusion_passenger/config/list_instances_command.rb +13 -25
- data/lib/phusion_passenger/config/main.rb +43 -14
- data/lib/phusion_passenger/config/nginx_engine_compiler.rb +337 -0
- data/lib/phusion_passenger/config/reopen_logs_command.rb +110 -0
- data/lib/phusion_passenger/config/restart_app_command.rb +61 -14
- data/lib/phusion_passenger/config/system_metrics_command.rb +2 -1
- data/lib/phusion_passenger/config/utils.rb +64 -39
- data/lib/phusion_passenger/config/validate_install_command.rb +2 -2
- data/lib/phusion_passenger/constants.rb +27 -6
- data/lib/phusion_passenger/debug_logging.rb +32 -15
- data/lib/phusion_passenger/loader_shared_helpers.rb +2 -5
- data/lib/phusion_passenger/message_client.rb +21 -22
- data/lib/phusion_passenger/native_support.rb +26 -31
- data/lib/phusion_passenger/nginx/config_options.rb +32 -19
- data/lib/phusion_passenger/packaging.rb +7 -3
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +1 -2
- data/lib/phusion_passenger/platform_info/depcheck_specs/libs.rb +3 -4
- data/lib/phusion_passenger/platform_info/operating_system.rb +6 -6
- data/lib/phusion_passenger/preloader_shared_helpers.rb +2 -2
- data/lib/phusion_passenger/rack/out_of_band_gc.rb +2 -2
- data/lib/phusion_passenger/rack/thread_handler_extension.rb +168 -65
- data/lib/phusion_passenger/request_handler.rb +47 -82
- data/lib/phusion_passenger/request_handler/thread_handler.rb +46 -10
- data/lib/phusion_passenger/ruby_core_enhancements.rb +25 -77
- data/lib/phusion_passenger/ruby_core_io_enhancements.rb +108 -0
- data/lib/phusion_passenger/standalone/app_finder.rb +39 -59
- data/lib/phusion_passenger/standalone/command.rb +27 -275
- data/lib/phusion_passenger/standalone/command2.rb +292 -0
- data/lib/phusion_passenger/standalone/config_utils.rb +87 -0
- data/lib/phusion_passenger/standalone/control_utils.rb +88 -0
- data/lib/phusion_passenger/standalone/main.rb +69 -71
- data/lib/phusion_passenger/standalone/start2_command.rb +799 -0
- data/lib/phusion_passenger/standalone/start_command.rb +406 -467
- data/lib/phusion_passenger/standalone/start_command/builtin_engine.rb +167 -0
- data/lib/phusion_passenger/standalone/start_command/nginx_engine.rb +165 -0
- data/lib/phusion_passenger/standalone/status_command.rb +64 -23
- data/lib/phusion_passenger/standalone/stop_command.rb +69 -32
- data/lib/phusion_passenger/standalone/version_command.rb +1 -5
- data/lib/phusion_passenger/utils.rb +0 -4
- data/lib/phusion_passenger/utils/json.rb +70 -4
- data/lib/phusion_passenger/utils/progress_bar.rb +56 -0
- data/lib/phusion_passenger/utils/tee_input.rb +3 -3
- data/lib/phusion_passenger/utils/unseekable_socket.rb +30 -0
- data/packaging/rpm/nginx_spec/nginx.spec.template +4 -3
- data/packaging/rpm/passenger_spec/passenger.spec.template +6 -10
- data/packaging/rpm/setup-system +2 -1
- data/resources/oss-binaries.phusionpassenger.com.crt +208 -0
- data/resources/templates/config/agent_compiler/confirm_enable_optimizations.txt.erb +5 -0
- data/resources/templates/config/installation_utils/cannot_create_user_support_binaries_dir.txt.erb +15 -0
- data/resources/templates/config/installation_utils/download_tool_missing.txt.erb +7 -0
- data/resources/templates/config/installation_utils/passenger_not_installed_as_root.txt.erb +12 -0
- data/resources/templates/config/installation_utils/support_binaries_dir_not_writable_despite_running_as_root.txt.erb +13 -0
- data/resources/templates/config/installation_utils/unexpected_filesystem_problem.txt.erb +16 -0
- data/{packaging/debian/debian_specs/passenger/patches/series → resources/templates/config/installation_utils/user_support_binaries_dir_not_writable.txt.erb} +0 -0
- data/resources/templates/nginx/nginx_module_sources_not_available.txt.erb +2 -2
- data/resources/templates/standalone/config.erb +14 -16
- data/resources/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +1 -1
- data/test/.rspec +1 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +20 -17
- data/test/cxx/ApplicationPool2/OptionsTest.cpp +0 -14
- data/test/cxx/ApplicationPool2/PoolTest.cpp +113 -90
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +18 -27
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +51 -53
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +55 -57
- data/test/cxx/BufferedIOTest.cpp +40 -40
- data/test/cxx/CxxTestMain.cpp +4 -22
- data/test/cxx/DataStructures/LStringTest.cpp +275 -0
- data/test/cxx/DataStructures/StringKeyTableTest.cpp +199 -0
- data/test/cxx/MemoryKit/MbufTest.cpp +213 -0
- data/test/cxx/MessageServerTest.cpp +62 -55
- data/test/cxx/RequestHandlerTest.cpp +26 -27
- data/test/cxx/ServerKit/ChannelTest.cpp +1467 -0
- data/test/cxx/ServerKit/FileBufferedChannelTest.cpp +817 -0
- data/test/cxx/ServerKit/HeaderTableTest.cpp +171 -0
- data/test/cxx/ServerKit/HttpServerTest.cpp +1503 -0
- data/test/cxx/ServerKit/ServerTest.cpp +408 -0
- data/test/cxx/TestSupport.cpp +51 -15
- data/test/cxx/TestSupport.h +31 -21
- data/test/cxx/UnionStationTest.cpp +121 -122
- data/test/cxx/UtilsTest.cpp +9 -33
- data/test/integration_tests/apache2_tests.rb +65 -27
- data/test/integration_tests/downloaded_binaries_tests.rb +30 -6
- data/test/integration_tests/native_packaging_spec.rb +32 -17
- data/test/integration_tests/nginx_tests.rb +28 -10
- data/test/integration_tests/shared/example_webapp_tests.rb +40 -27
- data/test/integration_tests/standalone_tests.rb +232 -169
- data/test/ruby/debug_logging_spec.rb +44 -40
- data/test/ruby/rails3.0/preloader_spec.rb +1 -1
- data/test/ruby/rails3.1/preloader_spec.rb +1 -1
- data/test/ruby/rails3.2/preloader_spec.rb +1 -1
- data/test/ruby/rails4.0/preloader_spec.rb +1 -1
- data/test/ruby/rails4.1/preloader_spec.rb +1 -1
- data/test/ruby/request_handler_spec.rb +62 -24
- data/test/ruby/shared/loader_sharedspec.rb +10 -9
- data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +23 -22
- data/test/ruby/spec_helper.rb +2 -11
- data/test/ruby/standalone/runtime_installer_spec.rb +15 -13
- data/test/ruby/union_station_spec.rb +45 -40
- data/test/ruby/utils/tee_input_spec.rb +5 -5
- data/test/ruby/utils_spec.rb +3 -39
- data/test/stub/apache2/httpd.conf.erb +5 -2
- data/test/stub/nginx/nginx.conf.erb +3 -1
- data/test/support/apache2_controller.rb +25 -25
- data/test/support/nginx_controller.rb +14 -14
- data/test/support/test_helper.rb +74 -75
- metadata +439 -643
- metadata.gz.asc +7 -7
- data/ext/common/MultiLibeio.cpp +0 -204
- data/ext/common/MultiLibeio.h +0 -67
- data/ext/common/ServerInstanceDir.h +0 -402
- data/ext/common/Utils/Base64.cpp +0 -143
- data/ext/common/Utils/Base64.h +0 -83
- data/ext/common/Utils/HttpHeaderBufferer.h +0 -184
- data/ext/common/Utils/PriorityQueue.h +0 -54
- data/ext/common/Utils/StreamBoyerMooreHorspool.h +0 -512
- data/ext/common/Utils/fib.c +0 -699
- data/ext/common/Utils/fib.h +0 -101
- data/ext/common/Utils/fibpriv.h +0 -67
- data/ext/common/agents/EnvPrinter.c +0 -16
- data/ext/common/agents/HelperAgent/AgentOptions.h +0 -109
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +0 -732
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +0 -294
- data/ext/common/agents/HelperAgent/ScgiRequestParser.h +0 -457
- data/ext/common/agents/LoggingAgent/AdminController.h +0 -96
- data/ext/common/agents/SpawnPreparer.cpp +0 -206
- data/ext/common/agents/TempDirToucher.c +0 -383
- data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +0 -116
- data/helper-scripts/classic-rails-loader.rb +0 -166
- data/helper-scripts/classic-rails-preloader.rb +0 -193
- data/lib/phusion_passenger/admin_tools/server_instance.rb +0 -339
- data/lib/phusion_passenger/classic_rails/cgi_fixed.rb +0 -68
- data/lib/phusion_passenger/classic_rails/thread_handler_extension.rb +0 -40
- data/lib/phusion_passenger/platform_info/openssl.rb +0 -61
- data/lib/phusion_passenger/standalone/config_file.rb +0 -119
- data/lib/phusion_passenger/standalone/help_command.rb +0 -57
- data/lib/phusion_passenger/standalone/runtime_installer.rb +0 -712
- data/lib/phusion_passenger/standalone/runtime_locator.rb +0 -170
- data/lib/phusion_passenger/standalone/utils.rb +0 -58
- data/lib/phusion_passenger/utils/tmpdir.rb +0 -69
- data/packaging/debian/LICENSE.md +0 -19
- data/packaging/debian/README.md +0 -320
- data/packaging/debian/Vagrantfile +0 -25
- data/packaging/debian/build +0 -210
- data/packaging/debian/debian_specs/nginx/changelog +0 -1989
- data/packaging/debian/debian_specs/nginx/compat.erb +0 -5
- data/packaging/debian/debian_specs/nginx/conf/fastcgi.conf +0 -25
- data/packaging/debian/debian_specs/nginx/conf/fastcgi_params +0 -24
- data/packaging/debian/debian_specs/nginx/conf/koi-utf +0 -109
- data/packaging/debian/debian_specs/nginx/conf/koi-win +0 -103
- data/packaging/debian/debian_specs/nginx/conf/mime.types +0 -89
- data/packaging/debian/debian_specs/nginx/conf/nginx.conf.erb +0 -97
- data/packaging/debian/debian_specs/nginx/conf/proxy_params +0 -4
- data/packaging/debian/debian_specs/nginx/conf/scgi_params +0 -16
- data/packaging/debian/debian_specs/nginx/conf/sites-available/default.erb +0 -93
- data/packaging/debian/debian_specs/nginx/conf/snippets/fastcgi-php.conf +0 -13
- data/packaging/debian/debian_specs/nginx/conf/snippets/snakeoil.conf +0 -5
- data/packaging/debian/debian_specs/nginx/conf/uwsgi_params +0 -16
- data/packaging/debian/debian_specs/nginx/conf/win-utf +0 -125
- data/packaging/debian/debian_specs/nginx/control.erb +0 -226
- data/packaging/debian/debian_specs/nginx/copyright +0 -196
- data/packaging/debian/debian_specs/nginx/debian-full.lintian-overrides +0 -1
- data/packaging/debian/debian_specs/nginx/gbp.conf +0 -2
- data/packaging/debian/debian_specs/nginx/help/docs/fcgiwrap +0 -14
- data/packaging/debian/debian_specs/nginx/help/docs/php +0 -119
- data/packaging/debian/debian_specs/nginx/help/docs/support-irc +0 -28
- data/packaging/debian/debian_specs/nginx/help/docs/upstream +0 -51
- data/packaging/debian/debian_specs/nginx/help/examples/drupal +0 -114
- data/packaging/debian/debian_specs/nginx/help/examples/http +0 -59
- data/packaging/debian/debian_specs/nginx/help/examples/mail +0 -30
- data/packaging/debian/debian_specs/nginx/help/examples/mailman +0 -59
- data/packaging/debian/debian_specs/nginx/help/examples/nginx.conf +0 -34
- data/packaging/debian/debian_specs/nginx/help/examples/nginx_modsite +0 -162
- data/packaging/debian/debian_specs/nginx/help/examples/virtual_hosts +0 -155
- data/packaging/debian/debian_specs/nginx/help/examples/wordpress +0 -74
- data/packaging/debian/debian_specs/nginx/helpers.rb +0 -41
- data/packaging/debian/debian_specs/nginx/index-debian.html.in +0 -32
- data/packaging/debian/debian_specs/nginx/index-ubuntu.html.in +0 -32
- data/packaging/debian/debian_specs/nginx/index.html.erb +0 -10
- data/packaging/debian/debian_specs/nginx/modules/README.Modules-versions +0 -65
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/README.markdown +0 -510
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/config +0 -5
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/doc/HttpHeadersMoreModule.wiki +0 -395
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ddebug.h +0 -119
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ngx_http_headers_more_filter_module.c +0 -348
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ngx_http_headers_more_filter_module.h +0 -80
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ngx_http_headers_more_headers_in.c +0 -826
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ngx_http_headers_more_headers_in.h +0 -26
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ngx_http_headers_more_headers_out.c +0 -716
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ngx_http_headers_more_headers_out.h +0 -26
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ngx_http_headers_more_util.c +0 -380
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/src/ngx_http_headers_more_util.h +0 -52
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/util/build.sh +0 -32
- data/packaging/debian/debian_specs/nginx/modules/headers-more-nginx-module/valgrind.suppress +0 -215
- data/packaging/debian/debian_specs/nginx/modules/nginx-auth-pam/ChangeLog +0 -35
- data/packaging/debian/debian_specs/nginx/modules/nginx-auth-pam/LICENSE +0 -25
- data/packaging/debian/debian_specs/nginx/modules/nginx-auth-pam/README.md +0 -93
- data/packaging/debian/debian_specs/nginx/modules/nginx-auth-pam/config +0 -4
- data/packaging/debian/debian_specs/nginx/modules/nginx-auth-pam/ngx_http_auth_pam_module.c +0 -462
- data/packaging/debian/debian_specs/nginx/modules/nginx-cache-purge/CHANGES +0 -66
- data/packaging/debian/debian_specs/nginx/modules/nginx-cache-purge/LICENSE +0 -26
- data/packaging/debian/debian_specs/nginx/modules/nginx-cache-purge/README.md +0 -171
- data/packaging/debian/debian_specs/nginx/modules/nginx-cache-purge/TODO.md +0 -7
- data/packaging/debian/debian_specs/nginx/modules/nginx-cache-purge/config +0 -21
- data/packaging/debian/debian_specs/nginx/modules/nginx-cache-purge/ngx_cache_purge_module.c +0 -1803
- data/packaging/debian/debian_specs/nginx/modules/nginx-dav-ext-module/README +0 -29
- data/packaging/debian/debian_specs/nginx/modules/nginx-dav-ext-module/config +0 -9
- data/packaging/debian/debian_specs/nginx/modules/nginx-dav-ext-module/ngx_http_dav_ext_module.c +0 -824
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/README +0 -139
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/README_AUTO_LIB +0 -395
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/TODO +0 -1
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/actions/array +0 -10
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/actions/palloc +0 -8
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/build +0 -597
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/action_replacements +0 -5
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/action_types +0 -12
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/conf_args +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/conf_locs +0 -25
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/conf_macros +0 -35
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/contexts +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/header_files +0 -3
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/headers +0 -4
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/module_dependencies +0 -5
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/modules_optional +0 -15
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/data/prefixes +0 -2
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/src/array.h +0 -7
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/src/conf_cmd_basic.h +0 -43
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/src/conf_merge.h +0 -78
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/src/palloc.h +0 -6
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/auto/text/autogen +0 -12
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/config +0 -49
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/docs/core/action_macros +0 -63
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/docs/core/conf_cmds +0 -62
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/docs/modules/set_var +0 -124
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/docs/patches/more_logging_info +0 -48
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/docs/upstream/list +0 -45
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/examples/README +0 -12
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/examples/http/set_var/config +0 -4
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/examples/http/set_var/ngx_http_set_var_examples_module.c +0 -136
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/ngx_auto_lib_core +0 -797
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/notes/CHANGES +0 -17
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/notes/LICENSE +0 -24
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/objs/ndk_array.h +0 -113
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/objs/ndk_conf_cmd_basic.h +0 -2203
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/objs/ndk_conf_cmd_extra.h +0 -5423
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/objs/ndk_conf_merge.h +0 -227
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/objs/ndk_config.c +0 -72
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/objs/ndk_config.h +0 -98
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/objs/ndk_includes.h +0 -66
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/objs/ndk_palloc.h +0 -112
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/patches/auto_config +0 -16
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/patches/expose_rewrite_functions +0 -291
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/patches/rewrite_phase_handler +0 -19
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/hash/md5.h +0 -117
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/hash/murmurhash2.c +0 -77
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/hash/sha.h +0 -200
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk.c +0 -155
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk.h +0 -58
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_buf.c +0 -43
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_buf.h +0 -5
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_complex_path.c +0 -129
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_complex_path.h +0 -30
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_complex_value.c +0 -192
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_complex_value.h +0 -21
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_conf_file.c +0 -396
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_conf_file.h +0 -44
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_debug.c +0 -72
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_debug.h +0 -171
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_encoding.c +0 -57
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_encoding.h +0 -12
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_hash.c +0 -82
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_hash.h +0 -45
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_http.c +0 -138
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_http.h +0 -3
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_http_headers.h +0 -35
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_log.c +0 -3
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_log.h +0 -165
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_parse.h +0 -67
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_path.c +0 -583
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_path.h +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_process.c +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_process.h +0 -12
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_regex.c +0 -215
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_regex.h +0 -7
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_rewrite.c +0 -103
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_rewrite.h +0 -26
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_set_var.c +0 -602
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_set_var.h +0 -44
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_string.c +0 -434
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_string.h +0 -37
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_string_util.h +0 -14
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_upstream_list.c +0 -205
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_upstream_list.h +0 -27
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_uri.c +0 -45
- data/packaging/debian/debian_specs/nginx/modules/nginx-development-kit/src/ndk_uri.h +0 -6
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/LICENSE +0 -25
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/README.markdown +0 -1850
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/config +0 -5
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/doc/HttpEchoModule.wiki +0 -1558
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ddebug.h +0 -109
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_echo.c +0 -344
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_echo.h +0 -25
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_filter.c +0 -282
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_filter.h +0 -15
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_foreach.c +0 -183
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_foreach.h +0 -16
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_handler.c +0 -429
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_handler.h +0 -18
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_location.c +0 -178
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_location.h +0 -13
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_module.c +0 -667
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_module.h +0 -137
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_request_info.c +0 -452
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_request_info.h +0 -31
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_sleep.c +0 -208
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_sleep.h +0 -16
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_subrequest.c +0 -788
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_subrequest.h +0 -19
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_timer.c +0 -96
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_timer.h +0 -13
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_util.c +0 -298
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_util.h +0 -58
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_var.c +0 -110
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/src/ngx_http_echo_var.h +0 -9
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/util/build.sh +0 -45
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/util/releng +0 -8
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/util/wiki2pod.pl +0 -131
- data/packaging/debian/debian_specs/nginx/modules/nginx-echo/valgrind.suppress +0 -38
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/LICENCE +0 -24
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/README +0 -206
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/changelog.txt +0 -54
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/config +0 -26
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/protocol.txt +0 -191
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/ngx_http_push_defs.c +0 -59
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/ngx_http_push_defs.h +0 -73
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/ngx_http_push_module.c +0 -783
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/ngx_http_push_module.h +0 -31
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/ngx_http_push_module_setup.c +0 -361
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/ngx_http_push_types.h +0 -120
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/memory/store.c +0 -1180
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/memory/store.h +0 -1
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/ngx_http_push_module_ipc.c +0 -146
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/ngx_http_push_module_ipc.h +0 -5
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/ngx_http_push_store.h +0 -51
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/ngx_rwlock.c +0 -178
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/ngx_rwlock.h +0 -5
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/rbtree_util.c +0 -246
- data/packaging/debian/debian_specs/nginx/modules/nginx-http-push/src/store/rbtree_util.h +0 -9
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/Changes +0 -51
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/README.markdown +0 -6954
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/config +0 -363
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/doc/HttpLuaModule.wiki +0 -5898
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/dtrace/ngx_lua_provider.d +0 -61
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/misc/recv-until-pm/Makefile +0 -3
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/misc/recv-until-pm/lib/RecvUntil.pm +0 -138
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/misc/recv-until-pm/t/sanity.t +0 -140
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/api/ngx_http_lua_api.h +0 -52
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ddebug.h +0 -82
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_accessby.c +0 -377
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_accessby.h +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_api.c +0 -77
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_args.c +0 -537
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_args.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_bodyfilterby.c +0 -632
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_bodyfilterby.h +0 -31
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_cache.c +0 -296
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_cache.h +0 -24
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_capturefilter.c +0 -175
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_capturefilter.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_clfactory.c +0 -887
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_clfactory.h +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_common.h +0 -478
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_config.c +0 -67
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_config.h +0 -19
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_consts.c +0 -148
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_consts.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_contentby.c +0 -369
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_contentby.h +0 -26
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_control.c +0 -483
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_control.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_coroutine.c +0 -379
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_coroutine.h +0 -23
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_ctx.c +0 -216
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_ctx.h +0 -23
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_directive.c +0 -1081
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_directive.h +0 -56
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_exception.c +0 -58
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_exception.h +0 -33
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_headerfilterby.c +0 -302
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_headerfilterby.h +0 -29
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_headers.c +0 -1370
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_headers.h +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_headers_in.c +0 -782
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_headers_in.h +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_headers_out.c +0 -625
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_headers_out.h +0 -23
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_initby.c +0 -42
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_initby.h +0 -23
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_initworkerby.c +0 -320
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_initworkerby.h +0 -25
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_log.c +0 -300
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_log.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_logby.c +0 -227
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_logby.h +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_misc.c +0 -252
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_misc.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_module.c +0 -924
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_ndk.c +0 -184
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_ndk.h +0 -21
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_output.c +0 -794
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_output.h +0 -28
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_pcrefix.c +0 -106
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_pcrefix.h +0 -23
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_phase.c +0 -94
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_phase.h +0 -13
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_probe.h +0 -85
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_regex.c +0 -2468
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_regex.h +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_req_body.c +0 -1169
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_req_body.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_req_method.c +0 -252
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_req_method.h +0 -19
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_rewriteby.c +0 -351
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_rewriteby.h +0 -22
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_script.c +0 -538
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_script.h +0 -86
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_setby.c +0 -216
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_setby.h +0 -15
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_shdict.c +0 -1844
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_shdict.h +0 -52
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_sleep.c +0 -191
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_sleep.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_socket_tcp.c +0 -5314
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_socket_tcp.h +0 -156
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_socket_udp.c +0 -1624
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_socket_udp.h +0 -56
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_string.c +0 -704
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_string.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_subrequest.c +0 -1741
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_subrequest.h +0 -46
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_time.c +0 -278
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_time.h +0 -21
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_timer.c +0 -661
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_timer.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_uri.c +0 -110
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_uri.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_uthread.c +0 -283
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_uthread.h +0 -36
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_util.c +0 -3972
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_util.h +0 -423
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_variable.c +0 -499
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_variable.h +0 -20
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_worker.c +0 -64
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/src/ngx_http_lua_worker.h +0 -17
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/tapset/ngx_lua.stp +0 -5
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/build.sh +0 -39
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/build2.sh +0 -55
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/fix-comments +0 -27
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/gdbinit +0 -415
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/ngx-links +0 -62
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/reindex +0 -64
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/releng +0 -8
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/retab +0 -8
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/revim +0 -102
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/run_test.sh +0 -10
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/util/update-readme.sh +0 -4
- data/packaging/debian/debian_specs/nginx/modules/nginx-lua/valgrind.suppress +0 -144
- data/packaging/debian/debian_specs/nginx/modules/nginx-upload-progress/CHANGES +0 -107
- data/packaging/debian/debian_specs/nginx/modules/nginx-upload-progress/LICENSE +0 -25
- data/packaging/debian/debian_specs/nginx/modules/nginx-upload-progress/Makefile +0 -8
- data/packaging/debian/debian_specs/nginx/modules/nginx-upload-progress/README +0 -329
- data/packaging/debian/debian_specs/nginx/modules/nginx-upload-progress/config +0 -3
- data/packaging/debian/debian_specs/nginx/modules/nginx-upload-progress/ngx_http_uploadprogress_module.c +0 -1774
- data/packaging/debian/debian_specs/nginx/modules/nginx-upstream-fair/README +0 -53
- data/packaging/debian/debian_specs/nginx/modules/nginx-upstream-fair/config +0 -3
- data/packaging/debian/debian_specs/nginx/modules/nginx-upstream-fair/ngx_http_upstream_fair_module.c +0 -1356
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/CHANGELOG.md +0 -37
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/HACKING.md +0 -24
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/LICENSE +0 -20
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/README.rst +0 -182
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/config +0 -8
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/nginx-0.6-support.patch +0 -23
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/ngx_http_fancyindex_module.c +0 -1305
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/template.awk +0 -52
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/template.h +0 -103
- data/packaging/debian/debian_specs/nginx/modules/ngx-fancyindex/template.html +0 -102
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/CHANGES +0 -37
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/README +0 -141
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/config +0 -3
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/doc/README.google_code_home_page.wiki +0 -120
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/doc/README.html +0 -199
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/doc/README.wiki +0 -123
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/ngx_http_subs_filter_module.c +0 -1298
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/README +0 -275
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/AutoInstall.pm +0 -820
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install.pm +0 -470
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/AutoInstall.pm +0 -82
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/Base.pm +0 -83
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/Can.pm +0 -81
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/Fetch.pm +0 -93
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/Include.pm +0 -34
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/Makefile.pm +0 -415
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/Metadata.pm +0 -716
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/TestBase.pm +0 -29
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/Win32.pm +0 -64
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Module/Install/WriteAll.pm +0 -63
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Spiffy.pm +0 -539
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Test/Base.pm +0 -682
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Test/Base/Filter.pm +0 -341
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Test/Builder.pm +0 -1413
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Test/Builder/Module.pm +0 -81
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/inc/Test/More.pm +0 -735
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/lib/Test/Nginx.pm +0 -315
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/lib/Test/Nginx/LWP.pm +0 -524
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/lib/Test/Nginx/Socket.pm +0 -1749
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/lib/Test/Nginx/Util.pm +0 -874
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/t/subs.t +0 -136
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/t/subs_capture.t +0 -32
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/t/subs_fix_string.t +0 -32
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/t/subs_regex.t +0 -108
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/t/subs_types.t +0 -59
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/test/test.sh +0 -5
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/util/update-readme.sh +0 -7
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/util/wiki2google_code_homepage.pl +0 -29
- data/packaging/debian/debian_specs/nginx/modules/ngx_http_substitutions_filter_module/util/wiki2pod.pl +0 -129
- data/packaging/debian/debian_specs/nginx/nginx-common.NEWS +0 -135
- data/packaging/debian/debian_specs/nginx/nginx-common.README.Debian +0 -45
- data/packaging/debian/debian_specs/nginx/nginx-common.dirs.erb +0 -32
- data/packaging/debian/debian_specs/nginx/nginx-common.install +0 -3
- data/packaging/debian/debian_specs/nginx/nginx-common.lintian-overrides +0 -2
- data/packaging/debian/debian_specs/nginx/nginx-common.manpages +0 -1
- data/packaging/debian/debian_specs/nginx/nginx-common.nginx.default +0 -10
- data/packaging/debian/debian_specs/nginx/nginx-common.nginx.init.erb +0 -214
- data/packaging/debian/debian_specs/nginx/nginx-common.nginx.logrotate +0 -18
- data/packaging/debian/debian_specs/nginx/nginx-common.nginx.service.erb +0 -37
- data/packaging/debian/debian_specs/nginx/nginx-common.postinst.erb +0 -66
- data/packaging/debian/debian_specs/nginx/nginx-common.postrm.erb +0 -46
- data/packaging/debian/debian_specs/nginx/nginx-common.preinst +0 -47
- data/packaging/debian/debian_specs/nginx/nginx-common.prerm.erb +0 -28
- data/packaging/debian/debian_specs/nginx/nginx-doc.docs +0 -2
- data/packaging/debian/debian_specs/nginx/nginx-doc.examples +0 -1
- data/packaging/debian/debian_specs/nginx/nginx-extras.install.erb +0 -17
- data/packaging/debian/debian_specs/nginx/nginx-extras.lintian-overrides +0 -1
- data/packaging/debian/debian_specs/nginx/nginx-extras.postinst.erb +0 -44
- data/packaging/debian/debian_specs/nginx/nginx-extras.prerm +0 -22
- data/packaging/debian/debian_specs/nginx/nginx.1 +0 -47
- data/packaging/debian/debian_specs/nginx/patches/perl-use-dpkg-buildflags.patch +0 -23
- data/packaging/debian/debian_specs/nginx/patches/series +0 -1
- data/packaging/debian/debian_specs/nginx/rules.erb +0 -185
- data/packaging/debian/debian_specs/nginx/source/format +0 -1
- data/packaging/debian/debian_specs/nginx/tests/control +0 -4
- data/packaging/debian/debian_specs/nginx/ufw/nginx +0 -14
- data/packaging/debian/debian_specs/nginx/upstream/signing-key.asc +0 -34
- data/packaging/debian/debian_specs/nginx/watch +0 -3
- data/packaging/debian/debian_specs/passenger/README.Debian +0 -12
- data/packaging/debian/debian_specs/passenger/changelog +0 -316
- data/packaging/debian/debian_specs/passenger/compat +0 -1
- data/packaging/debian/debian_specs/passenger/control.erb +0 -123
- data/packaging/debian/debian_specs/passenger/copyright +0 -385
- data/packaging/debian/debian_specs/passenger/helpers.rb +0 -24
- data/packaging/debian/debian_specs/passenger/libapache2-mod-passenger.install +0 -3
- data/packaging/debian/debian_specs/passenger/libapache2-mod-passenger.postinst +0 -36
- data/packaging/debian/debian_specs/passenger/libapache2-mod-passenger.prerm +0 -15
- data/packaging/debian/debian_specs/passenger/locations.ini.erb +0 -14
- data/packaging/debian/debian_specs/passenger/passenger-dev.install.erb +0 -3
- data/packaging/debian/debian_specs/passenger/passenger-doc.install.erb +0 -2
- data/packaging/debian/debian_specs/passenger/passenger.conf +0 -6
- data/packaging/debian/debian_specs/passenger/passenger.docs +0 -4
- data/packaging/debian/debian_specs/passenger/passenger.install.erb +0 -16
- data/packaging/debian/debian_specs/passenger/passenger.load +0 -3
- data/packaging/debian/debian_specs/passenger/passenger.manpages +0 -3
- data/packaging/debian/debian_specs/passenger/passenger_free_ruby.c +0 -29
- data/packaging/debian/debian_specs/passenger/passenger_ruby_utils.c +0 -54
- data/packaging/debian/debian_specs/passenger/passenger_system_ruby.c.erb +0 -37
- data/packaging/debian/debian_specs/passenger/rules.erb +0 -84
- data/packaging/debian/debian_specs/passenger/source/format +0 -1
- data/packaging/debian/debian_specs/passenger_enterprise/README.Debian +0 -12
- data/packaging/debian/debian_specs/passenger_enterprise/changelog +0 -316
- data/packaging/debian/debian_specs/passenger_enterprise/compat +0 -1
- data/packaging/debian/debian_specs/passenger_enterprise/control.erb +0 -123
- data/packaging/debian/debian_specs/passenger_enterprise/copyright +0 -385
- data/packaging/debian/debian_specs/passenger_enterprise/helpers.rb +0 -2
- data/packaging/debian/debian_specs/passenger_enterprise/libapache2-mod-passenger-enterprise.install +0 -3
- data/packaging/debian/debian_specs/passenger_enterprise/libapache2-mod-passenger-enterprise.postinst +0 -36
- data/packaging/debian/debian_specs/passenger_enterprise/libapache2-mod-passenger-enterprise.prerm +0 -15
- data/packaging/debian/debian_specs/passenger_enterprise/locations.ini.erb +0 -14
- data/packaging/debian/debian_specs/passenger_enterprise/passenger-enterprise-dev.install.erb +0 -3
- data/packaging/debian/debian_specs/passenger_enterprise/passenger-enterprise-doc.install.erb +0 -2
- data/packaging/debian/debian_specs/passenger_enterprise/passenger-enterprise.docs +0 -4
- data/packaging/debian/debian_specs/passenger_enterprise/passenger-enterprise.install.erb +0 -14
- data/packaging/debian/debian_specs/passenger_enterprise/passenger-enterprise.manpages +0 -3
- data/packaging/debian/debian_specs/passenger_enterprise/passenger.conf +0 -6
- data/packaging/debian/debian_specs/passenger_enterprise/passenger.load +0 -3
- data/packaging/debian/debian_specs/passenger_enterprise/passenger_free_ruby.c.erb +0 -1
- data/packaging/debian/debian_specs/passenger_enterprise/passenger_ruby_utils.c.erb +0 -1
- data/packaging/debian/debian_specs/passenger_enterprise/passenger_system_ruby.c.erb +0 -1
- data/packaging/debian/debian_specs/passenger_enterprise/patches/series +0 -0
- data/packaging/debian/debian_specs/passenger_enterprise/rules.erb +0 -84
- data/packaging/debian/debian_specs/passenger_enterprise/source/format +0 -1
- data/packaging/debian/docker_images/Makefile +0 -38
- data/packaging/debian/docker_images/buildbox/CONTAINER_VERSION.txt +0 -0
- data/packaging/debian/docker_images/buildbox/Dockerfile +0 -3
- data/packaging/debian/docker_images/buildbox/Gemfile +0 -9
- data/packaging/debian/docker_images/buildbox/Gemfile.lock +0 -42
- data/packaging/debian/docker_images/buildbox/install.sh +0 -85
- data/packaging/debian/docker_images/buildbox/pbuilderrc +0 -4
- data/packaging/debian/docker_images/buildbox/sudoers.conf +0 -6
- data/packaging/debian/docker_images/setup-buildbox-docker-image +0 -7
- data/packaging/debian/docker_images/setup-testbox-docker-image-debian-6 +0 -7
- data/packaging/debian/docker_images/setup-testbox-docker-image-debian-7 +0 -7
- data/packaging/debian/docker_images/setup-testbox-docker-image-debian-8 +0 -7
- data/packaging/debian/docker_images/setup-testbox-docker-image-ubuntu-12.04 +0 -7
- data/packaging/debian/docker_images/setup-testbox-docker-image-ubuntu-14.04 +0 -7
- data/packaging/debian/docker_images/setup-testbox-docker-image-ubuntu-15.04 +0 -7
- data/packaging/debian/docker_images/setup-testbox-docker-image-ubuntu-15.10 +0 -7
- data/packaging/debian/docker_images/testbox-debian-6/Dockerfile +0 -3
- data/packaging/debian/docker_images/testbox-debian-6/Gemfile +0 -2
- data/packaging/debian/docker_images/testbox-debian-6/Gemfile.lock +0 -23
- data/packaging/debian/docker_images/testbox-debian-6/argparse.py +0 -2374
- data/packaging/debian/docker_images/testbox-debian-6/install.sh +0 -78
- data/packaging/debian/docker_images/testbox-debian-7/Dockerfile +0 -3
- data/packaging/debian/docker_images/testbox-debian-7/Gemfile +0 -2
- data/packaging/debian/docker_images/testbox-debian-7/Gemfile.lock +0 -23
- data/packaging/debian/docker_images/testbox-debian-7/install.sh +0 -71
- data/packaging/debian/docker_images/testbox-debian-8/Dockerfile +0 -3
- data/packaging/debian/docker_images/testbox-debian-8/Gemfile +0 -2
- data/packaging/debian/docker_images/testbox-debian-8/Gemfile.lock +0 -23
- data/packaging/debian/docker_images/testbox-debian-8/install.sh +0 -70
- data/packaging/debian/docker_images/testbox-ubuntu-12.04/Dockerfile +0 -3
- data/packaging/debian/docker_images/testbox-ubuntu-12.04/Gemfile +0 -2
- data/packaging/debian/docker_images/testbox-ubuntu-12.04/Gemfile.lock +0 -23
- data/packaging/debian/docker_images/testbox-ubuntu-12.04/install.sh +0 -69
- data/packaging/debian/docker_images/testbox-ubuntu-14.04/Dockerfile +0 -3
- data/packaging/debian/docker_images/testbox-ubuntu-14.04/Gemfile +0 -2
- data/packaging/debian/docker_images/testbox-ubuntu-14.04/Gemfile.lock +0 -23
- data/packaging/debian/docker_images/testbox-ubuntu-14.04/install.sh +0 -69
- data/packaging/debian/docker_images/testbox-ubuntu-15.04/Dockerfile +0 -3
- data/packaging/debian/docker_images/testbox-ubuntu-15.04/Gemfile +0 -2
- data/packaging/debian/docker_images/testbox-ubuntu-15.04/Gemfile.lock +0 -23
- data/packaging/debian/docker_images/testbox-ubuntu-15.04/install.sh +0 -69
- data/packaging/debian/docker_images/testbox-ubuntu-15.10/Dockerfile +0 -3
- data/packaging/debian/docker_images/testbox-ubuntu-15.10/Gemfile +0 -2
- data/packaging/debian/docker_images/testbox-ubuntu-15.10/Gemfile.lock +0 -23
- data/packaging/debian/docker_images/testbox-ubuntu-15.10/install.sh +0 -69
- data/packaging/debian/internal/build/Rakefile +0 -235
- data/packaging/debian/internal/build/build-passenger-orig-tarball.sh +0 -76
- data/packaging/debian/internal/build/build-source-package.rb +0 -121
- data/packaging/debian/internal/build/download-nginx-orig-tarball.sh +0 -17
- data/packaging/debian/internal/build/rakefile_support.rb +0 -96
- data/packaging/debian/internal/build/setup-environment-essentials.sh +0 -15
- data/packaging/debian/internal/build/setup-environment.sh +0 -29
- data/packaging/debian/internal/lib/distro_info.rb +0 -82
- data/packaging/debian/internal/lib/distro_info.sh +0 -303
- data/packaging/debian/internal/lib/distro_info.sh.erb +0 -65
- data/packaging/debian/internal/lib/library.sh +0 -83
- data/packaging/debian/internal/lib/preprocessor.rb +0 -173
- data/packaging/debian/internal/lib/tracking.rb +0 -95
- data/packaging/debian/internal/lib/tracking_category.rb +0 -45
- data/packaging/debian/internal/lib/tracking_database.rb +0 -132
- data/packaging/debian/internal/lib/tracking_task.rb +0 -148
- data/packaging/debian/internal/lib/utils.rb +0 -78
- data/packaging/debian/internal/publish/Rakefile +0 -97
- data/packaging/debian/internal/publish/oss-binaries.phusionpassenger.com-fingerprint.txt +0 -1
- data/packaging/debian/internal/publish/packagecloud_fingerprint.txt +0 -1
- data/packaging/debian/internal/publish/passenger_website_fingerprint.txt +0 -1
- data/packaging/debian/internal/publish/preinit.sh +0 -7
- data/packaging/debian/internal/publish/rakefile_support.rb +0 -183
- data/packaging/debian/internal/scripts/gpg_noninteractive/gpg +0 -11
- data/packaging/debian/internal/scripts/initccache.sh +0 -35
- data/packaging/debian/internal/scripts/inituidgid.sh +0 -19
- data/packaging/debian/internal/scripts/my_init +0 -340
- data/packaging/debian/internal/scripts/pin_certificates +0 -34
- data/packaging/debian/internal/scripts/regen_distro_info_script.sh +0 -3
- data/packaging/debian/internal/scripts/setup-vagrant.sh +0 -12
- data/packaging/debian/internal/scripts/setuser +0 -31
- data/packaging/debian/internal/shell/initpbuilder.sh +0 -3
- data/packaging/debian/internal/shell/preinit.sh +0 -28
- data/packaging/debian/internal/shell/sudoers.conf +0 -1
- data/packaging/debian/internal/test/apache/apache-24.conf +0 -5
- data/packaging/debian/internal/test/apache/apache-pre-24.conf +0 -4
- data/packaging/debian/internal/test/apache/vhost.conf +0 -17
- data/packaging/debian/internal/test/misc/config.json +0 -15
- data/packaging/debian/internal/test/misc/hosts.conf +0 -4
- data/packaging/debian/internal/test/misc/init.sh +0 -25
- data/packaging/debian/internal/test/misc/nodejs_test_app.js +0 -6
- data/packaging/debian/internal/test/misc/python_test_app.py +0 -3
- data/packaging/debian/internal/test/misc/ruby_test_app.rb +0 -5
- data/packaging/debian/internal/test/misc/test_support.rb +0 -61
- data/packaging/debian/internal/test/nginx/vhost.conf +0 -23
- data/packaging/debian/internal/test/system_web_server_test.rb +0 -126
- data/packaging/debian/internal/test/test.sh +0 -141
- data/packaging/debian/jenkins/publish/clear_caches.rb +0 -48
- data/packaging/debian/jenkins/publish/publish.sh +0 -69
- data/packaging/debian/jenkins/test/test.sh +0 -63
- data/packaging/debian/passenger_apt_automation.sublime-project +0 -14
- data/packaging/debian/publish +0 -172
- data/packaging/debian/shell +0 -116
- data/packaging/debian/test +0 -142
- data/packaging/rpm/passenger_spec/rubygem-passenger-4.0.18-gcc47-include-sys_types.patch +0 -45
- data/test/cxx/Base64Test.cpp +0 -50
- data/test/cxx/FileBackedPipeTest.cpp +0 -626
- data/test/cxx/HttpHeaderBuffererTest.cpp +0 -257
- data/test/cxx/ScgiRequestParserTest.cpp +0 -423
- data/test/cxx/ServerInstanceDirTest.cpp +0 -175
- data/test/ruby/admin_tools_spec.rb +0 -360
- data/test/ruby/classic_rails/loader_spec.rb +0 -46
- data/test/ruby/classic_rails/preloader_spec.rb +0 -52
- data/test/ruby/standalone/runtime_locator_spec.rb +0 -214
- data/test/stub/rails2.3/Rakefile +0 -10
- data/test/stub/rails2.3/app/controllers/application_controller.rb +0 -10
- data/test/stub/rails2.3/app/controllers/bar_controller_1.rb +0 -5
- data/test/stub/rails2.3/app/controllers/bar_controller_2.rb +0 -5
- data/test/stub/rails2.3/app/controllers/foo_controller.rb +0 -21
- data/test/stub/rails2.3/app/helpers/application_helper.rb +0 -3
- data/test/stub/rails2.3/app/helpers/bar_helper.rb +0 -2
- data/test/stub/rails2.3/app/helpers/foo_helper.rb +0 -2
- data/test/stub/rails2.3/config/boot.rb +0 -110
- data/test/stub/rails2.3/config/database.yml +0 -19
- data/test/stub/rails2.3/config/environment.rb +0 -62
- data/test/stub/rails2.3/config/environments/development.rb +0 -17
- data/test/stub/rails2.3/config/environments/production.rb +0 -18
- data/test/stub/rails2.3/config/environments/staging.rb +0 -18
- data/test/stub/rails2.3/config/initializers/inflections.rb +0 -10
- data/test/stub/rails2.3/config/initializers/mime_types.rb +0 -5
- data/test/stub/rails2.3/config/routes.rb +0 -35
- data/test/stub/rails2.3/log/.gitignore +0 -1
- data/test/stub/rails2.3/public/.gitignore +0 -1
- data/test/stub/rails2.3/script/about +0 -3
- data/test/stub/rails2.3/script/console +0 -3
- data/test/stub/rails2.3/script/dbconsole +0 -3
- data/test/stub/rails2.3/script/destroy +0 -3
- data/test/stub/rails2.3/script/generate +0 -3
- data/test/stub/rails2.3/script/performance/benchmarker +0 -3
- data/test/stub/rails2.3/script/performance/profiler +0 -3
- data/test/stub/rails2.3/script/performance/request +0 -3
- data/test/stub/rails2.3/script/plugin +0 -3
- data/test/stub/rails2.3/script/process/inspector +0 -3
- data/test/stub/rails2.3/script/process/reaper +0 -3
- data/test/stub/rails2.3/script/process/spawner +0 -3
- data/test/stub/rails2.3/script/runner +0 -3
- data/test/stub/rails2.3/script/server +0 -3
- data/test/stub/rails2.3/tmp/cache/.gitignore +0 -1
- data/test/stub/rails2.3/tmp/pids/.gitignore +0 -1
- data/test/stub/rails2.3/tmp/sessions/.gitignore +0 -1
- data/test/stub/rails2.3/tmp/sockets/.gitignore +0 -1
@@ -0,0 +1,176 @@
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////
|
2
|
+
//
|
3
|
+
// (C) Copyright Ion Gaztanaga 2005-2012.
|
4
|
+
// (C) Copyright Gennaro Prota 2003 - 2004.
|
5
|
+
//
|
6
|
+
// Distributed under the Boost Software License, Version 1.0.
|
7
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
8
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
// See http://www.boost.org/libs/container for documentation.
|
11
|
+
//
|
12
|
+
//////////////////////////////////////////////////////////////////////////////
|
13
|
+
|
14
|
+
#ifndef BOOST_CONTAINER_DETAIL_TRANSFORM_ITERATORS_HPP
|
15
|
+
#define BOOST_CONTAINER_DETAIL_TRANSFORM_ITERATORS_HPP
|
16
|
+
|
17
|
+
#if (defined _MSC_VER) && (_MSC_VER >= 1200)
|
18
|
+
# pragma once
|
19
|
+
#endif
|
20
|
+
|
21
|
+
#include "config_begin.hpp"
|
22
|
+
#include <boost/container/detail/workaround.hpp>
|
23
|
+
#include <boost/container/detail/type_traits.hpp>
|
24
|
+
#include <iterator>
|
25
|
+
|
26
|
+
namespace boost {
|
27
|
+
namespace container {
|
28
|
+
|
29
|
+
template <class PseudoReference>
|
30
|
+
struct operator_arrow_proxy
|
31
|
+
{
|
32
|
+
operator_arrow_proxy(const PseudoReference &px)
|
33
|
+
: m_value(px)
|
34
|
+
{}
|
35
|
+
|
36
|
+
PseudoReference* operator->() const { return &m_value; }
|
37
|
+
// This function is needed for MWCW and BCC, which won't call operator->
|
38
|
+
// again automatically per 13.3.1.2 para 8
|
39
|
+
// operator T*() const { return &m_value; }
|
40
|
+
mutable PseudoReference m_value;
|
41
|
+
};
|
42
|
+
|
43
|
+
template <class T>
|
44
|
+
struct operator_arrow_proxy<T&>
|
45
|
+
{
|
46
|
+
operator_arrow_proxy(T &px)
|
47
|
+
: m_value(px)
|
48
|
+
{}
|
49
|
+
|
50
|
+
T* operator->() const { return const_cast<T*>(&m_value); }
|
51
|
+
// This function is needed for MWCW and BCC, which won't call operator->
|
52
|
+
// again automatically per 13.3.1.2 para 8
|
53
|
+
// operator T*() const { return &m_value; }
|
54
|
+
T &m_value;
|
55
|
+
};
|
56
|
+
|
57
|
+
template <class Iterator, class UnaryFunction>
|
58
|
+
class transform_iterator
|
59
|
+
: public UnaryFunction
|
60
|
+
, public std::iterator
|
61
|
+
< typename Iterator::iterator_category
|
62
|
+
, typename container_detail::remove_reference<typename UnaryFunction::result_type>::type
|
63
|
+
, typename Iterator::difference_type
|
64
|
+
, operator_arrow_proxy<typename UnaryFunction::result_type>
|
65
|
+
, typename UnaryFunction::result_type>
|
66
|
+
{
|
67
|
+
public:
|
68
|
+
explicit transform_iterator(const Iterator &it, const UnaryFunction &f = UnaryFunction())
|
69
|
+
: UnaryFunction(f), m_it(it)
|
70
|
+
{}
|
71
|
+
|
72
|
+
explicit transform_iterator()
|
73
|
+
: UnaryFunction(), m_it()
|
74
|
+
{}
|
75
|
+
|
76
|
+
//Constructors
|
77
|
+
transform_iterator& operator++()
|
78
|
+
{ increment(); return *this; }
|
79
|
+
|
80
|
+
transform_iterator operator++(int)
|
81
|
+
{
|
82
|
+
transform_iterator result (*this);
|
83
|
+
increment();
|
84
|
+
return result;
|
85
|
+
}
|
86
|
+
|
87
|
+
friend bool operator== (const transform_iterator& i, const transform_iterator& i2)
|
88
|
+
{ return i.equal(i2); }
|
89
|
+
|
90
|
+
friend bool operator!= (const transform_iterator& i, const transform_iterator& i2)
|
91
|
+
{ return !(i == i2); }
|
92
|
+
|
93
|
+
/*
|
94
|
+
friend bool operator> (const transform_iterator& i, const transform_iterator& i2)
|
95
|
+
{ return i2 < i; }
|
96
|
+
|
97
|
+
friend bool operator<= (const transform_iterator& i, const transform_iterator& i2)
|
98
|
+
{ return !(i > i2); }
|
99
|
+
|
100
|
+
friend bool operator>= (const transform_iterator& i, const transform_iterator& i2)
|
101
|
+
{ return !(i < i2); }
|
102
|
+
*/
|
103
|
+
friend typename Iterator::difference_type operator- (const transform_iterator& i, const transform_iterator& i2)
|
104
|
+
{ return i2.distance_to(i); }
|
105
|
+
|
106
|
+
//Arithmetic
|
107
|
+
transform_iterator& operator+=(typename Iterator::difference_type off)
|
108
|
+
{ this->advance(off); return *this; }
|
109
|
+
|
110
|
+
transform_iterator operator+(typename Iterator::difference_type off) const
|
111
|
+
{
|
112
|
+
transform_iterator other(*this);
|
113
|
+
other.advance(off);
|
114
|
+
return other;
|
115
|
+
}
|
116
|
+
|
117
|
+
friend transform_iterator operator+(typename Iterator::difference_type off, const transform_iterator& right)
|
118
|
+
{ return right + off; }
|
119
|
+
|
120
|
+
transform_iterator& operator-=(typename Iterator::difference_type off)
|
121
|
+
{ this->advance(-off); return *this; }
|
122
|
+
|
123
|
+
transform_iterator operator-(typename Iterator::difference_type off) const
|
124
|
+
{ return *this + (-off); }
|
125
|
+
|
126
|
+
typename UnaryFunction::result_type operator*() const
|
127
|
+
{ return dereference(); }
|
128
|
+
|
129
|
+
operator_arrow_proxy<typename UnaryFunction::result_type>
|
130
|
+
operator->() const
|
131
|
+
{ return operator_arrow_proxy<typename UnaryFunction::result_type>(dereference()); }
|
132
|
+
|
133
|
+
Iterator & base()
|
134
|
+
{ return m_it; }
|
135
|
+
|
136
|
+
const Iterator & base() const
|
137
|
+
{ return m_it; }
|
138
|
+
|
139
|
+
private:
|
140
|
+
Iterator m_it;
|
141
|
+
|
142
|
+
void increment()
|
143
|
+
{ ++m_it; }
|
144
|
+
|
145
|
+
void decrement()
|
146
|
+
{ --m_it; }
|
147
|
+
|
148
|
+
bool equal(const transform_iterator &other) const
|
149
|
+
{ return m_it == other.m_it; }
|
150
|
+
|
151
|
+
bool less(const transform_iterator &other) const
|
152
|
+
{ return other.m_it < m_it; }
|
153
|
+
|
154
|
+
typename UnaryFunction::result_type dereference() const
|
155
|
+
{ return UnaryFunction::operator()(*m_it); }
|
156
|
+
|
157
|
+
void advance(typename Iterator::difference_type n)
|
158
|
+
{ std::advance(m_it, n); }
|
159
|
+
|
160
|
+
typename Iterator::difference_type distance_to(const transform_iterator &other)const
|
161
|
+
{ return std::distance(other.m_it, m_it); }
|
162
|
+
};
|
163
|
+
|
164
|
+
template <class Iterator, class UnaryFunc>
|
165
|
+
transform_iterator<Iterator, UnaryFunc>
|
166
|
+
make_transform_iterator(Iterator it, UnaryFunc fun)
|
167
|
+
{
|
168
|
+
return transform_iterator<Iterator, UnaryFunc>(it, fun);
|
169
|
+
}
|
170
|
+
|
171
|
+
} //namespace container {
|
172
|
+
} //namespace boost {
|
173
|
+
|
174
|
+
#include <boost/container/detail/config_end.hpp>
|
175
|
+
|
176
|
+
#endif //#ifndef BOOST_CONTAINER_DETAIL_TRANSFORM_ITERATORS_HPP
|
@@ -0,0 +1,1134 @@
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////
|
2
|
+
//
|
3
|
+
// (C) Copyright Ion Gaztanaga 2005-2012. Distributed under the Boost
|
4
|
+
// Software License, Version 1.0. (See accompanying file
|
5
|
+
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
6
|
+
//
|
7
|
+
// See http://www.boost.org/libs/container for documentation.
|
8
|
+
//
|
9
|
+
//////////////////////////////////////////////////////////////////////////////
|
10
|
+
|
11
|
+
#ifndef BOOST_CONTAINER_TREE_HPP
|
12
|
+
#define BOOST_CONTAINER_TREE_HPP
|
13
|
+
|
14
|
+
#include "config_begin.hpp"
|
15
|
+
#include <boost/container/detail/workaround.hpp>
|
16
|
+
#include <boost/container/container_fwd.hpp>
|
17
|
+
|
18
|
+
#include <boost/move/utility.hpp>
|
19
|
+
#include <boost/intrusive/pointer_traits.hpp>
|
20
|
+
#include <boost/type_traits/has_trivial_destructor.hpp>
|
21
|
+
#include <boost/detail/no_exceptions_support.hpp>
|
22
|
+
#include <boost/intrusive/rbtree.hpp>
|
23
|
+
|
24
|
+
#include <boost/container/detail/utilities.hpp>
|
25
|
+
#include <boost/container/detail/algorithms.hpp>
|
26
|
+
#include <boost/container/detail/node_alloc_holder.hpp>
|
27
|
+
#include <boost/container/detail/destroyers.hpp>
|
28
|
+
#include <boost/container/detail/pair.hpp>
|
29
|
+
#include <boost/container/detail/type_traits.hpp>
|
30
|
+
#include <boost/container/allocator_traits.hpp>
|
31
|
+
#include <boost/detail/no_exceptions_support.hpp>
|
32
|
+
#ifndef BOOST_CONTAINER_PERFECT_FORWARDING
|
33
|
+
#include <boost/container/detail/preprocessor.hpp>
|
34
|
+
#endif
|
35
|
+
|
36
|
+
#include <utility> //std::pair
|
37
|
+
#include <iterator>
|
38
|
+
#include <algorithm>
|
39
|
+
|
40
|
+
namespace boost {
|
41
|
+
namespace container {
|
42
|
+
namespace container_detail {
|
43
|
+
|
44
|
+
template<class Key, class Value, class KeyCompare, class KeyOfValue>
|
45
|
+
struct tree_value_compare
|
46
|
+
: public KeyCompare
|
47
|
+
{
|
48
|
+
typedef Value value_type;
|
49
|
+
typedef KeyCompare key_compare;
|
50
|
+
typedef KeyOfValue key_of_value;
|
51
|
+
typedef Key key_type;
|
52
|
+
|
53
|
+
tree_value_compare(const key_compare &kcomp)
|
54
|
+
: key_compare(kcomp)
|
55
|
+
{}
|
56
|
+
|
57
|
+
const key_compare &key_comp() const
|
58
|
+
{ return static_cast<const key_compare &>(*this); }
|
59
|
+
|
60
|
+
key_compare &key_comp()
|
61
|
+
{ return static_cast<key_compare &>(*this); }
|
62
|
+
|
63
|
+
template<class T>
|
64
|
+
struct is_key
|
65
|
+
{
|
66
|
+
static const bool value = is_same<const T, const key_type>::value;
|
67
|
+
};
|
68
|
+
|
69
|
+
template<class T>
|
70
|
+
typename enable_if_c<is_key<T>::value, const key_type &>::type
|
71
|
+
key_forward(const T &key) const
|
72
|
+
{ return key; }
|
73
|
+
|
74
|
+
template<class T>
|
75
|
+
typename enable_if_c<!is_key<T>::value, const key_type &>::type
|
76
|
+
key_forward(const T &key) const
|
77
|
+
{ return KeyOfValue()(key); }
|
78
|
+
|
79
|
+
template<class KeyType, class KeyType2>
|
80
|
+
bool operator()(const KeyType &key1, const KeyType2 &key2) const
|
81
|
+
{ return key_compare::operator()(this->key_forward(key1), this->key_forward(key2)); }
|
82
|
+
};
|
83
|
+
|
84
|
+
template<class VoidPointer>
|
85
|
+
struct rbtree_hook
|
86
|
+
{
|
87
|
+
typedef typename container_detail::bi::make_set_base_hook
|
88
|
+
< container_detail::bi::void_pointer<VoidPointer>
|
89
|
+
, container_detail::bi::link_mode<container_detail::bi::normal_link>
|
90
|
+
, container_detail::bi::optimize_size<true>
|
91
|
+
>::type type;
|
92
|
+
};
|
93
|
+
|
94
|
+
//This trait is used to type-pun std::pair because in C++03
|
95
|
+
//compilers std::pair is useless for C++11 features
|
96
|
+
template<class T>
|
97
|
+
struct rbtree_internal_data_type
|
98
|
+
{
|
99
|
+
typedef T type;
|
100
|
+
};
|
101
|
+
|
102
|
+
template<class T1, class T2>
|
103
|
+
struct rbtree_internal_data_type< std::pair<T1, T2> >
|
104
|
+
{
|
105
|
+
typedef pair<T1, T2> type;
|
106
|
+
};
|
107
|
+
|
108
|
+
|
109
|
+
//The node to be store in the tree
|
110
|
+
template <class T, class VoidPointer>
|
111
|
+
struct rbtree_node
|
112
|
+
: public rbtree_hook<VoidPointer>::type
|
113
|
+
{
|
114
|
+
private:
|
115
|
+
//BOOST_COPYABLE_AND_MOVABLE(rbtree_node)
|
116
|
+
rbtree_node();
|
117
|
+
|
118
|
+
public:
|
119
|
+
typedef typename rbtree_hook<VoidPointer>::type hook_type;
|
120
|
+
|
121
|
+
typedef T value_type;
|
122
|
+
typedef typename rbtree_internal_data_type<T>::type internal_type;
|
123
|
+
|
124
|
+
typedef rbtree_node<T, VoidPointer> node_type;
|
125
|
+
|
126
|
+
T &get_data()
|
127
|
+
{
|
128
|
+
T* ptr = reinterpret_cast<T*>(&this->m_data);
|
129
|
+
return *ptr;
|
130
|
+
}
|
131
|
+
|
132
|
+
const T &get_data() const
|
133
|
+
{
|
134
|
+
const T* ptr = reinterpret_cast<const T*>(&this->m_data);
|
135
|
+
return *ptr;
|
136
|
+
}
|
137
|
+
|
138
|
+
internal_type m_data;
|
139
|
+
|
140
|
+
template<class A, class B>
|
141
|
+
void do_assign(const std::pair<const A, B> &p)
|
142
|
+
{
|
143
|
+
const_cast<A&>(m_data.first) = p.first;
|
144
|
+
m_data.second = p.second;
|
145
|
+
}
|
146
|
+
|
147
|
+
template<class A, class B>
|
148
|
+
void do_assign(const pair<const A, B> &p)
|
149
|
+
{
|
150
|
+
const_cast<A&>(m_data.first) = p.first;
|
151
|
+
m_data.second = p.second;
|
152
|
+
}
|
153
|
+
|
154
|
+
template<class V>
|
155
|
+
void do_assign(const V &v)
|
156
|
+
{ m_data = v; }
|
157
|
+
|
158
|
+
template<class A, class B>
|
159
|
+
void do_move_assign(std::pair<const A, B> &p)
|
160
|
+
{
|
161
|
+
const_cast<A&>(m_data.first) = ::boost::move(p.first);
|
162
|
+
m_data.second = ::boost::move(p.second);
|
163
|
+
}
|
164
|
+
|
165
|
+
template<class A, class B>
|
166
|
+
void do_move_assign(pair<const A, B> &p)
|
167
|
+
{
|
168
|
+
const_cast<A&>(m_data.first) = ::boost::move(p.first);
|
169
|
+
m_data.second = ::boost::move(p.second);
|
170
|
+
}
|
171
|
+
|
172
|
+
template<class V>
|
173
|
+
void do_move_assign(V &v)
|
174
|
+
{ m_data = ::boost::move(v); }
|
175
|
+
};
|
176
|
+
|
177
|
+
}//namespace container_detail {
|
178
|
+
|
179
|
+
namespace container_detail {
|
180
|
+
|
181
|
+
template<class A, class ValueCompare>
|
182
|
+
struct intrusive_rbtree_type
|
183
|
+
{
|
184
|
+
typedef typename boost::container::
|
185
|
+
allocator_traits<A>::value_type value_type;
|
186
|
+
typedef typename boost::container::
|
187
|
+
allocator_traits<A>::void_pointer void_pointer;
|
188
|
+
typedef typename boost::container::
|
189
|
+
allocator_traits<A>::size_type size_type;
|
190
|
+
typedef typename container_detail::rbtree_node
|
191
|
+
<value_type, void_pointer> node_type;
|
192
|
+
typedef node_compare<ValueCompare, node_type> node_compare_type;
|
193
|
+
typedef typename container_detail::bi::make_rbtree
|
194
|
+
<node_type
|
195
|
+
,container_detail::bi::compare<node_compare_type>
|
196
|
+
,container_detail::bi::base_hook<typename rbtree_hook<void_pointer>::type>
|
197
|
+
,container_detail::bi::constant_time_size<true>
|
198
|
+
,container_detail::bi::size_type<size_type>
|
199
|
+
>::type container_type;
|
200
|
+
typedef container_type type ;
|
201
|
+
};
|
202
|
+
|
203
|
+
} //namespace container_detail {
|
204
|
+
|
205
|
+
namespace container_detail {
|
206
|
+
|
207
|
+
template <class Key, class Value, class KeyOfValue,
|
208
|
+
class KeyCompare, class A>
|
209
|
+
class rbtree
|
210
|
+
: protected container_detail::node_alloc_holder
|
211
|
+
< A
|
212
|
+
, typename container_detail::intrusive_rbtree_type
|
213
|
+
<A, tree_value_compare<Key, Value, KeyCompare, KeyOfValue>
|
214
|
+
>::type
|
215
|
+
, KeyCompare
|
216
|
+
>
|
217
|
+
{
|
218
|
+
typedef typename container_detail::intrusive_rbtree_type
|
219
|
+
< A, tree_value_compare
|
220
|
+
<Key, Value, KeyCompare, KeyOfValue>
|
221
|
+
>::type Icont;
|
222
|
+
typedef container_detail::node_alloc_holder
|
223
|
+
<A, Icont, KeyCompare> AllocHolder;
|
224
|
+
typedef typename AllocHolder::NodePtr NodePtr;
|
225
|
+
typedef rbtree < Key, Value, KeyOfValue
|
226
|
+
, KeyCompare, A> ThisType;
|
227
|
+
typedef typename AllocHolder::NodeAlloc NodeAlloc;
|
228
|
+
typedef typename AllocHolder::ValAlloc ValAlloc;
|
229
|
+
typedef typename AllocHolder::Node Node;
|
230
|
+
typedef typename Icont::iterator iiterator;
|
231
|
+
typedef typename Icont::const_iterator iconst_iterator;
|
232
|
+
typedef container_detail::allocator_destroyer<NodeAlloc> Destroyer;
|
233
|
+
typedef typename AllocHolder::allocator_v1 allocator_v1;
|
234
|
+
typedef typename AllocHolder::allocator_v2 allocator_v2;
|
235
|
+
typedef typename AllocHolder::alloc_version alloc_version;
|
236
|
+
|
237
|
+
class RecyclingCloner;
|
238
|
+
friend class RecyclingCloner;
|
239
|
+
|
240
|
+
class RecyclingCloner
|
241
|
+
{
|
242
|
+
public:
|
243
|
+
RecyclingCloner(AllocHolder &holder, Icont &irbtree)
|
244
|
+
: m_holder(holder), m_icont(irbtree)
|
245
|
+
{}
|
246
|
+
|
247
|
+
NodePtr operator()(const Node &other) const
|
248
|
+
{
|
249
|
+
if(NodePtr p = m_icont.unlink_leftmost_without_rebalance()){
|
250
|
+
//First recycle a node (this can't throw)
|
251
|
+
BOOST_TRY{
|
252
|
+
//This can throw
|
253
|
+
p->do_assign(other.m_data);
|
254
|
+
return p;
|
255
|
+
}
|
256
|
+
BOOST_CATCH(...){
|
257
|
+
//If there is an exception destroy the whole source
|
258
|
+
m_holder.destroy_node(p);
|
259
|
+
while((p = m_icont.unlink_leftmost_without_rebalance())){
|
260
|
+
m_holder.destroy_node(p);
|
261
|
+
}
|
262
|
+
BOOST_RETHROW
|
263
|
+
}
|
264
|
+
BOOST_CATCH_END
|
265
|
+
}
|
266
|
+
else{
|
267
|
+
return m_holder.create_node(other.m_data);
|
268
|
+
}
|
269
|
+
}
|
270
|
+
|
271
|
+
AllocHolder &m_holder;
|
272
|
+
Icont &m_icont;
|
273
|
+
};
|
274
|
+
|
275
|
+
class RecyclingMoveCloner;
|
276
|
+
friend class RecyclingMoveCloner;
|
277
|
+
|
278
|
+
class RecyclingMoveCloner
|
279
|
+
{
|
280
|
+
public:
|
281
|
+
RecyclingMoveCloner(AllocHolder &holder, Icont &irbtree)
|
282
|
+
: m_holder(holder), m_icont(irbtree)
|
283
|
+
{}
|
284
|
+
|
285
|
+
NodePtr operator()(const Node &other) const
|
286
|
+
{
|
287
|
+
if(NodePtr p = m_icont.unlink_leftmost_without_rebalance()){
|
288
|
+
//First recycle a node (this can't throw)
|
289
|
+
BOOST_TRY{
|
290
|
+
//This can throw
|
291
|
+
p->do_move_assign(const_cast<Node &>(other).m_data);
|
292
|
+
return p;
|
293
|
+
}
|
294
|
+
BOOST_CATCH(...){
|
295
|
+
//If there is an exception destroy the whole source
|
296
|
+
m_holder.destroy_node(p);
|
297
|
+
while((p = m_icont.unlink_leftmost_without_rebalance())){
|
298
|
+
m_holder.destroy_node(p);
|
299
|
+
}
|
300
|
+
BOOST_RETHROW
|
301
|
+
}
|
302
|
+
BOOST_CATCH_END
|
303
|
+
}
|
304
|
+
else{
|
305
|
+
return m_holder.create_node(other.m_data);
|
306
|
+
}
|
307
|
+
}
|
308
|
+
|
309
|
+
AllocHolder &m_holder;
|
310
|
+
Icont &m_icont;
|
311
|
+
};
|
312
|
+
|
313
|
+
BOOST_COPYABLE_AND_MOVABLE(rbtree)
|
314
|
+
|
315
|
+
public:
|
316
|
+
|
317
|
+
typedef Key key_type;
|
318
|
+
typedef Value value_type;
|
319
|
+
typedef A allocator_type;
|
320
|
+
typedef KeyCompare key_compare;
|
321
|
+
typedef tree_value_compare< Key, Value
|
322
|
+
, KeyCompare, KeyOfValue> value_compare;
|
323
|
+
typedef typename boost::container::
|
324
|
+
allocator_traits<A>::pointer pointer;
|
325
|
+
typedef typename boost::container::
|
326
|
+
allocator_traits<A>::const_pointer const_pointer;
|
327
|
+
typedef typename boost::container::
|
328
|
+
allocator_traits<A>::reference reference;
|
329
|
+
typedef typename boost::container::
|
330
|
+
allocator_traits<A>::const_reference const_reference;
|
331
|
+
typedef typename boost::container::
|
332
|
+
allocator_traits<A>::size_type size_type;
|
333
|
+
typedef typename boost::container::
|
334
|
+
allocator_traits<A>::difference_type difference_type;
|
335
|
+
typedef difference_type rbtree_difference_type;
|
336
|
+
typedef pointer rbtree_pointer;
|
337
|
+
typedef const_pointer rbtree_const_pointer;
|
338
|
+
typedef reference rbtree_reference;
|
339
|
+
typedef const_reference rbtree_const_reference;
|
340
|
+
typedef NodeAlloc stored_allocator_type;
|
341
|
+
|
342
|
+
private:
|
343
|
+
|
344
|
+
template<class KeyValueCompare>
|
345
|
+
struct key_node_compare
|
346
|
+
: private KeyValueCompare
|
347
|
+
{
|
348
|
+
key_node_compare(const KeyValueCompare &comp)
|
349
|
+
: KeyValueCompare(comp)
|
350
|
+
{}
|
351
|
+
|
352
|
+
template<class T>
|
353
|
+
struct is_node
|
354
|
+
{
|
355
|
+
static const bool value = is_same<T, Node>::value;
|
356
|
+
};
|
357
|
+
|
358
|
+
template<class T>
|
359
|
+
typename enable_if_c<is_node<T>::value, const value_type &>::type
|
360
|
+
key_forward(const T &node) const
|
361
|
+
{ return node.get_data(); }
|
362
|
+
|
363
|
+
template<class T>
|
364
|
+
typename enable_if_c<!is_node<T>::value, const T &>::type
|
365
|
+
key_forward(const T &key) const
|
366
|
+
{ return key; }
|
367
|
+
|
368
|
+
template<class KeyType, class KeyType2>
|
369
|
+
bool operator()(const KeyType &key1, const KeyType2 &key2) const
|
370
|
+
{ return KeyValueCompare::operator()(this->key_forward(key1), this->key_forward(key2)); }
|
371
|
+
};
|
372
|
+
|
373
|
+
typedef key_node_compare<value_compare> KeyNodeCompare;
|
374
|
+
|
375
|
+
public:
|
376
|
+
//rbtree const_iterator
|
377
|
+
class const_iterator
|
378
|
+
: public std::iterator
|
379
|
+
< std::bidirectional_iterator_tag
|
380
|
+
, value_type , rbtree_difference_type
|
381
|
+
, rbtree_const_pointer , rbtree_const_reference>
|
382
|
+
{
|
383
|
+
protected:
|
384
|
+
typedef typename Icont::iterator iiterator;
|
385
|
+
iiterator m_it;
|
386
|
+
explicit const_iterator(iiterator it) : m_it(it){}
|
387
|
+
void prot_incr() { ++m_it; }
|
388
|
+
void prot_decr() { --m_it; }
|
389
|
+
|
390
|
+
private:
|
391
|
+
iiterator get()
|
392
|
+
{ return this->m_it; }
|
393
|
+
|
394
|
+
public:
|
395
|
+
friend class rbtree <Key, Value, KeyOfValue, KeyCompare, A>;
|
396
|
+
typedef rbtree_difference_type difference_type;
|
397
|
+
|
398
|
+
//Constructors
|
399
|
+
const_iterator()
|
400
|
+
: m_it()
|
401
|
+
{}
|
402
|
+
|
403
|
+
//Pointer like operators
|
404
|
+
const_reference operator*() const
|
405
|
+
{ return m_it->get_data(); }
|
406
|
+
|
407
|
+
const_pointer operator->() const
|
408
|
+
{ return const_pointer(&m_it->get_data()); }
|
409
|
+
|
410
|
+
//Increment / Decrement
|
411
|
+
const_iterator& operator++()
|
412
|
+
{ prot_incr(); return *this; }
|
413
|
+
|
414
|
+
const_iterator operator++(int)
|
415
|
+
{ iiterator tmp = m_it; ++*this; return const_iterator(tmp); }
|
416
|
+
|
417
|
+
const_iterator& operator--()
|
418
|
+
{ prot_decr(); return *this; }
|
419
|
+
|
420
|
+
const_iterator operator--(int)
|
421
|
+
{ iiterator tmp = m_it; --*this; return const_iterator(tmp); }
|
422
|
+
|
423
|
+
//Comparison operators
|
424
|
+
bool operator== (const const_iterator& r) const
|
425
|
+
{ return m_it == r.m_it; }
|
426
|
+
|
427
|
+
bool operator!= (const const_iterator& r) const
|
428
|
+
{ return m_it != r.m_it; }
|
429
|
+
};
|
430
|
+
|
431
|
+
//rbtree iterator
|
432
|
+
class iterator : public const_iterator
|
433
|
+
{
|
434
|
+
private:
|
435
|
+
explicit iterator(iiterator it)
|
436
|
+
: const_iterator(it)
|
437
|
+
{}
|
438
|
+
|
439
|
+
iiterator get()
|
440
|
+
{ return this->m_it; }
|
441
|
+
|
442
|
+
public:
|
443
|
+
friend class rbtree <Key, Value, KeyOfValue, KeyCompare, A>;
|
444
|
+
typedef rbtree_pointer pointer;
|
445
|
+
typedef rbtree_reference reference;
|
446
|
+
|
447
|
+
//Constructors
|
448
|
+
iterator(){}
|
449
|
+
|
450
|
+
//Pointer like operators
|
451
|
+
reference operator*() const
|
452
|
+
{ return this->m_it->get_data(); }
|
453
|
+
pointer operator->() const
|
454
|
+
{ return boost::intrusive::pointer_traits<pointer>::pointer_to(this->m_it->get_data()); }
|
455
|
+
|
456
|
+
//Increment / Decrement
|
457
|
+
iterator& operator++()
|
458
|
+
{ this->prot_incr(); return *this; }
|
459
|
+
|
460
|
+
iterator operator++(int)
|
461
|
+
{ iiterator tmp = this->m_it; ++*this; return iterator(tmp); }
|
462
|
+
|
463
|
+
iterator& operator--()
|
464
|
+
{ this->prot_decr(); return *this; }
|
465
|
+
|
466
|
+
iterator operator--(int)
|
467
|
+
{ iterator tmp = *this; --*this; return tmp; }
|
468
|
+
};
|
469
|
+
|
470
|
+
typedef std::reverse_iterator<iterator> reverse_iterator;
|
471
|
+
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
472
|
+
|
473
|
+
rbtree()
|
474
|
+
: AllocHolder(key_compare())
|
475
|
+
{}
|
476
|
+
|
477
|
+
rbtree(const key_compare& comp, const allocator_type& a = allocator_type())
|
478
|
+
: AllocHolder(a, comp)
|
479
|
+
{}
|
480
|
+
|
481
|
+
template <class InputIterator>
|
482
|
+
rbtree(bool unique_insertion, InputIterator first, InputIterator last, const key_compare& comp,
|
483
|
+
const allocator_type& a
|
484
|
+
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
485
|
+
, typename container_detail::enable_if_c
|
486
|
+
< container_detail::is_input_iterator<InputIterator>::value
|
487
|
+
|| container_detail::is_same<alloc_version, allocator_v1>::value
|
488
|
+
>::type * = 0
|
489
|
+
#endif
|
490
|
+
)
|
491
|
+
: AllocHolder(a, comp)
|
492
|
+
{
|
493
|
+
if(unique_insertion){
|
494
|
+
this->insert_unique(first, last);
|
495
|
+
}
|
496
|
+
else{
|
497
|
+
this->insert_equal(first, last);
|
498
|
+
}
|
499
|
+
}
|
500
|
+
|
501
|
+
template <class InputIterator>
|
502
|
+
rbtree(bool unique_insertion, InputIterator first, InputIterator last, const key_compare& comp,
|
503
|
+
const allocator_type& a
|
504
|
+
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
505
|
+
, typename container_detail::enable_if_c
|
506
|
+
< !(container_detail::is_input_iterator<InputIterator>::value
|
507
|
+
|| container_detail::is_same<alloc_version, allocator_v1>::value)
|
508
|
+
>::type * = 0
|
509
|
+
#endif
|
510
|
+
)
|
511
|
+
: AllocHolder(a, comp)
|
512
|
+
{
|
513
|
+
if(unique_insertion){
|
514
|
+
this->insert_unique(first, last);
|
515
|
+
}
|
516
|
+
else{
|
517
|
+
//Optimized allocation and construction
|
518
|
+
this->allocate_many_and_construct
|
519
|
+
(first, std::distance(first, last), insert_equal_end_hint_functor(this->icont()));
|
520
|
+
}
|
521
|
+
}
|
522
|
+
|
523
|
+
template <class InputIterator>
|
524
|
+
rbtree( ordered_range_t, InputIterator first, InputIterator last
|
525
|
+
, const key_compare& comp = key_compare(), const allocator_type& a = allocator_type()
|
526
|
+
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
527
|
+
, typename container_detail::enable_if_c
|
528
|
+
< container_detail::is_input_iterator<InputIterator>::value
|
529
|
+
|| container_detail::is_same<alloc_version, allocator_v1>::value
|
530
|
+
>::type * = 0
|
531
|
+
#endif
|
532
|
+
)
|
533
|
+
: AllocHolder(a, comp)
|
534
|
+
{
|
535
|
+
this->insert_equal(first, last);
|
536
|
+
}
|
537
|
+
|
538
|
+
template <class InputIterator>
|
539
|
+
rbtree( ordered_range_t, InputIterator first, InputIterator last
|
540
|
+
, const key_compare& comp = key_compare(), const allocator_type& a = allocator_type()
|
541
|
+
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
|
542
|
+
, typename container_detail::enable_if_c
|
543
|
+
< !(container_detail::is_input_iterator<InputIterator>::value
|
544
|
+
|| container_detail::is_same<alloc_version, allocator_v1>::value)
|
545
|
+
>::type * = 0
|
546
|
+
#endif
|
547
|
+
)
|
548
|
+
: AllocHolder(a, comp)
|
549
|
+
{
|
550
|
+
//Optimized allocation and construction
|
551
|
+
this->allocate_many_and_construct
|
552
|
+
(first, std::distance(first, last), push_back_functor(this->icont()));
|
553
|
+
}
|
554
|
+
|
555
|
+
rbtree(const rbtree& x)
|
556
|
+
: AllocHolder(x, x.key_comp())
|
557
|
+
{
|
558
|
+
this->icont().clone_from
|
559
|
+
(x.icont(), typename AllocHolder::cloner(*this), Destroyer(this->node_alloc()));
|
560
|
+
}
|
561
|
+
|
562
|
+
rbtree(BOOST_RV_REF(rbtree) x)
|
563
|
+
: AllocHolder(::boost::move(static_cast<AllocHolder&>(x)), x.key_comp())
|
564
|
+
{}
|
565
|
+
|
566
|
+
rbtree(const rbtree& x, const allocator_type &a)
|
567
|
+
: AllocHolder(a, x.key_comp())
|
568
|
+
{
|
569
|
+
this->icont().clone_from
|
570
|
+
(x.icont(), typename AllocHolder::cloner(*this), Destroyer(this->node_alloc()));
|
571
|
+
}
|
572
|
+
|
573
|
+
rbtree(BOOST_RV_REF(rbtree) x, const allocator_type &a)
|
574
|
+
: AllocHolder(a, x.key_comp())
|
575
|
+
{
|
576
|
+
if(this->node_alloc() == x.node_alloc()){
|
577
|
+
this->icont().swap(x.icont());
|
578
|
+
}
|
579
|
+
else{
|
580
|
+
this->icont().clone_from
|
581
|
+
(x.icont(), typename AllocHolder::cloner(*this), Destroyer(this->node_alloc()));
|
582
|
+
}
|
583
|
+
}
|
584
|
+
|
585
|
+
~rbtree()
|
586
|
+
{} //AllocHolder clears the tree
|
587
|
+
|
588
|
+
rbtree& operator=(BOOST_COPY_ASSIGN_REF(rbtree) x)
|
589
|
+
{
|
590
|
+
if (&x != this){
|
591
|
+
NodeAlloc &this_alloc = this->get_stored_allocator();
|
592
|
+
const NodeAlloc &x_alloc = x.get_stored_allocator();
|
593
|
+
container_detail::bool_<allocator_traits<NodeAlloc>::
|
594
|
+
propagate_on_container_copy_assignment::value> flag;
|
595
|
+
if(flag && this_alloc != x_alloc){
|
596
|
+
this->clear();
|
597
|
+
}
|
598
|
+
this->AllocHolder::copy_assign_alloc(x);
|
599
|
+
//Transfer all the nodes to a temporary tree
|
600
|
+
//If anything goes wrong, all the nodes will be destroyed
|
601
|
+
//automatically
|
602
|
+
Icont other_tree(::boost::move(this->icont()));
|
603
|
+
|
604
|
+
//Now recreate the source tree reusing nodes stored by other_tree
|
605
|
+
this->icont().clone_from
|
606
|
+
(x.icont()
|
607
|
+
, RecyclingCloner(*this, other_tree)
|
608
|
+
, Destroyer(this->node_alloc()));
|
609
|
+
|
610
|
+
//If there are remaining nodes, destroy them
|
611
|
+
NodePtr p;
|
612
|
+
while((p = other_tree.unlink_leftmost_without_rebalance())){
|
613
|
+
AllocHolder::destroy_node(p);
|
614
|
+
}
|
615
|
+
}
|
616
|
+
return *this;
|
617
|
+
}
|
618
|
+
|
619
|
+
rbtree& operator=(BOOST_RV_REF(rbtree) x)
|
620
|
+
{
|
621
|
+
if (&x != this){
|
622
|
+
NodeAlloc &this_alloc = this->node_alloc();
|
623
|
+
NodeAlloc &x_alloc = x.node_alloc();
|
624
|
+
//If allocators are equal we can just swap pointers
|
625
|
+
if(this_alloc == x_alloc){
|
626
|
+
//Destroy and swap pointers
|
627
|
+
this->clear();
|
628
|
+
this->icont() = ::boost::move(x.icont());
|
629
|
+
//Move allocator if needed
|
630
|
+
this->AllocHolder::move_assign_alloc(x);
|
631
|
+
}
|
632
|
+
//If unequal allocators, then do a one by one move
|
633
|
+
else{
|
634
|
+
//Transfer all the nodes to a temporary tree
|
635
|
+
//If anything goes wrong, all the nodes will be destroyed
|
636
|
+
//automatically
|
637
|
+
Icont other_tree(::boost::move(this->icont()));
|
638
|
+
|
639
|
+
//Now recreate the source tree reusing nodes stored by other_tree
|
640
|
+
this->icont().clone_from
|
641
|
+
(x.icont()
|
642
|
+
, RecyclingMoveCloner(*this, other_tree)
|
643
|
+
, Destroyer(this->node_alloc()));
|
644
|
+
|
645
|
+
//If there are remaining nodes, destroy them
|
646
|
+
NodePtr p;
|
647
|
+
while((p = other_tree.unlink_leftmost_without_rebalance())){
|
648
|
+
AllocHolder::destroy_node(p);
|
649
|
+
}
|
650
|
+
}
|
651
|
+
}
|
652
|
+
return *this;
|
653
|
+
}
|
654
|
+
|
655
|
+
public:
|
656
|
+
// accessors:
|
657
|
+
value_compare value_comp() const
|
658
|
+
{ return this->icont().value_comp().value_comp(); }
|
659
|
+
|
660
|
+
key_compare key_comp() const
|
661
|
+
{ return this->icont().value_comp().value_comp().key_comp(); }
|
662
|
+
|
663
|
+
allocator_type get_allocator() const
|
664
|
+
{ return allocator_type(this->node_alloc()); }
|
665
|
+
|
666
|
+
const stored_allocator_type &get_stored_allocator() const
|
667
|
+
{ return this->node_alloc(); }
|
668
|
+
|
669
|
+
stored_allocator_type &get_stored_allocator()
|
670
|
+
{ return this->node_alloc(); }
|
671
|
+
|
672
|
+
iterator begin()
|
673
|
+
{ return iterator(this->icont().begin()); }
|
674
|
+
|
675
|
+
const_iterator begin() const
|
676
|
+
{ return this->cbegin(); }
|
677
|
+
|
678
|
+
iterator end()
|
679
|
+
{ return iterator(this->icont().end()); }
|
680
|
+
|
681
|
+
const_iterator end() const
|
682
|
+
{ return this->cend(); }
|
683
|
+
|
684
|
+
reverse_iterator rbegin()
|
685
|
+
{ return reverse_iterator(end()); }
|
686
|
+
|
687
|
+
const_reverse_iterator rbegin() const
|
688
|
+
{ return this->crbegin(); }
|
689
|
+
|
690
|
+
reverse_iterator rend()
|
691
|
+
{ return reverse_iterator(begin()); }
|
692
|
+
|
693
|
+
const_reverse_iterator rend() const
|
694
|
+
{ return this->crend(); }
|
695
|
+
|
696
|
+
//! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
|
697
|
+
//!
|
698
|
+
//! <b>Throws</b>: Nothing.
|
699
|
+
//!
|
700
|
+
//! <b>Complexity</b>: Constant.
|
701
|
+
const_iterator cbegin() const
|
702
|
+
{ return const_iterator(this->non_const_icont().begin()); }
|
703
|
+
|
704
|
+
//! <b>Effects</b>: Returns a const_iterator to the end of the container.
|
705
|
+
//!
|
706
|
+
//! <b>Throws</b>: Nothing.
|
707
|
+
//!
|
708
|
+
//! <b>Complexity</b>: Constant.
|
709
|
+
const_iterator cend() const
|
710
|
+
{ return const_iterator(this->non_const_icont().end()); }
|
711
|
+
|
712
|
+
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
|
713
|
+
//! of the reversed container.
|
714
|
+
//!
|
715
|
+
//! <b>Throws</b>: Nothing.
|
716
|
+
//!
|
717
|
+
//! <b>Complexity</b>: Constant.
|
718
|
+
const_reverse_iterator crbegin() const
|
719
|
+
{ return const_reverse_iterator(cend()); }
|
720
|
+
|
721
|
+
//! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
|
722
|
+
//! of the reversed container.
|
723
|
+
//!
|
724
|
+
//! <b>Throws</b>: Nothing.
|
725
|
+
//!
|
726
|
+
//! <b>Complexity</b>: Constant.
|
727
|
+
const_reverse_iterator crend() const
|
728
|
+
{ return const_reverse_iterator(cbegin()); }
|
729
|
+
|
730
|
+
bool empty() const
|
731
|
+
{ return !this->size(); }
|
732
|
+
|
733
|
+
size_type size() const
|
734
|
+
{ return this->icont().size(); }
|
735
|
+
|
736
|
+
size_type max_size() const
|
737
|
+
{ return AllocHolder::max_size(); }
|
738
|
+
|
739
|
+
void swap(ThisType& x)
|
740
|
+
{ AllocHolder::swap(x); }
|
741
|
+
|
742
|
+
public:
|
743
|
+
|
744
|
+
typedef typename Icont::insert_commit_data insert_commit_data;
|
745
|
+
|
746
|
+
// insert/erase
|
747
|
+
std::pair<iterator,bool> insert_unique_check
|
748
|
+
(const key_type& key, insert_commit_data &data)
|
749
|
+
{
|
750
|
+
std::pair<iiterator, bool> ret =
|
751
|
+
this->icont().insert_unique_check(key, KeyNodeCompare(value_comp()), data);
|
752
|
+
return std::pair<iterator, bool>(iterator(ret.first), ret.second);
|
753
|
+
}
|
754
|
+
|
755
|
+
std::pair<iterator,bool> insert_unique_check
|
756
|
+
(const_iterator hint, const key_type& key, insert_commit_data &data)
|
757
|
+
{
|
758
|
+
std::pair<iiterator, bool> ret =
|
759
|
+
this->icont().insert_unique_check(hint.get(), key, KeyNodeCompare(value_comp()), data);
|
760
|
+
return std::pair<iterator, bool>(iterator(ret.first), ret.second);
|
761
|
+
}
|
762
|
+
|
763
|
+
iterator insert_unique_commit(const value_type& v, insert_commit_data &data)
|
764
|
+
{
|
765
|
+
NodePtr tmp = AllocHolder::create_node(v);
|
766
|
+
iiterator it(this->icont().insert_unique_commit(*tmp, data));
|
767
|
+
return iterator(it);
|
768
|
+
}
|
769
|
+
|
770
|
+
template<class MovableConvertible>
|
771
|
+
iterator insert_unique_commit
|
772
|
+
(BOOST_FWD_REF(MovableConvertible) mv, insert_commit_data &data)
|
773
|
+
{
|
774
|
+
NodePtr tmp = AllocHolder::create_node(boost::forward<MovableConvertible>(mv));
|
775
|
+
iiterator it(this->icont().insert_unique_commit(*tmp, data));
|
776
|
+
return iterator(it);
|
777
|
+
}
|
778
|
+
|
779
|
+
std::pair<iterator,bool> insert_unique(const value_type& v)
|
780
|
+
{
|
781
|
+
insert_commit_data data;
|
782
|
+
std::pair<iterator,bool> ret =
|
783
|
+
this->insert_unique_check(KeyOfValue()(v), data);
|
784
|
+
if(!ret.second)
|
785
|
+
return ret;
|
786
|
+
return std::pair<iterator,bool>
|
787
|
+
(this->insert_unique_commit(v, data), true);
|
788
|
+
}
|
789
|
+
|
790
|
+
template<class MovableConvertible>
|
791
|
+
std::pair<iterator,bool> insert_unique(BOOST_FWD_REF(MovableConvertible) mv)
|
792
|
+
{
|
793
|
+
insert_commit_data data;
|
794
|
+
std::pair<iterator,bool> ret =
|
795
|
+
this->insert_unique_check(KeyOfValue()(mv), data);
|
796
|
+
if(!ret.second)
|
797
|
+
return ret;
|
798
|
+
return std::pair<iterator,bool>
|
799
|
+
(this->insert_unique_commit(boost::forward<MovableConvertible>(mv), data), true);
|
800
|
+
}
|
801
|
+
|
802
|
+
private:
|
803
|
+
std::pair<iterator, bool> emplace_unique_impl(NodePtr p)
|
804
|
+
{
|
805
|
+
value_type &v = p->get_data();
|
806
|
+
insert_commit_data data;
|
807
|
+
scoped_destroy_deallocator<NodeAlloc> destroy_deallocator(p, this->node_alloc());
|
808
|
+
std::pair<iterator,bool> ret =
|
809
|
+
this->insert_unique_check(KeyOfValue()(v), data);
|
810
|
+
if(!ret.second){
|
811
|
+
return ret;
|
812
|
+
}
|
813
|
+
//No throw insertion part, release rollback
|
814
|
+
destroy_deallocator.release();
|
815
|
+
return std::pair<iterator,bool>
|
816
|
+
( iterator(iiterator(this->icont().insert_unique_commit(*p, data)))
|
817
|
+
, true );
|
818
|
+
}
|
819
|
+
|
820
|
+
iterator emplace_unique_hint_impl(const_iterator hint, NodePtr p)
|
821
|
+
{
|
822
|
+
value_type &v = p->get_data();
|
823
|
+
insert_commit_data data;
|
824
|
+
std::pair<iterator,bool> ret =
|
825
|
+
this->insert_unique_check(hint, KeyOfValue()(v), data);
|
826
|
+
if(!ret.second){
|
827
|
+
Destroyer(this->node_alloc())(p);
|
828
|
+
return ret.first;
|
829
|
+
}
|
830
|
+
return iterator(iiterator(this->icont().insert_unique_commit(*p, data)));
|
831
|
+
}
|
832
|
+
|
833
|
+
public:
|
834
|
+
|
835
|
+
#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
|
836
|
+
|
837
|
+
template <class... Args>
|
838
|
+
std::pair<iterator, bool> emplace_unique(Args&&... args)
|
839
|
+
{ return this->emplace_unique_impl(AllocHolder::create_node(boost::forward<Args>(args)...)); }
|
840
|
+
|
841
|
+
template <class... Args>
|
842
|
+
iterator emplace_hint_unique(const_iterator hint, Args&&... args)
|
843
|
+
{ return this->emplace_unique_hint_impl(hint, AllocHolder::create_node(boost::forward<Args>(args)...)); }
|
844
|
+
|
845
|
+
template <class... Args>
|
846
|
+
iterator emplace_equal(Args&&... args)
|
847
|
+
{
|
848
|
+
NodePtr p(AllocHolder::create_node(boost::forward<Args>(args)...));
|
849
|
+
return iterator(this->icont().insert_equal(this->icont().end(), *p));
|
850
|
+
}
|
851
|
+
|
852
|
+
template <class... Args>
|
853
|
+
iterator emplace_hint_equal(const_iterator hint, Args&&... args)
|
854
|
+
{
|
855
|
+
NodePtr p(AllocHolder::create_node(boost::forward<Args>(args)...));
|
856
|
+
return iterator(this->icont().insert_equal(hint.get(), *p));
|
857
|
+
}
|
858
|
+
|
859
|
+
#else //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
|
860
|
+
|
861
|
+
#define BOOST_PP_LOCAL_MACRO(n) \
|
862
|
+
BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
|
863
|
+
std::pair<iterator, bool> emplace_unique(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
|
864
|
+
{ \
|
865
|
+
return this->emplace_unique_impl \
|
866
|
+
(AllocHolder::create_node(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _))); \
|
867
|
+
} \
|
868
|
+
\
|
869
|
+
BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
|
870
|
+
iterator emplace_hint_unique(const_iterator hint \
|
871
|
+
BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
|
872
|
+
{ \
|
873
|
+
return this->emplace_unique_hint_impl \
|
874
|
+
(hint, AllocHolder::create_node(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _))); \
|
875
|
+
} \
|
876
|
+
\
|
877
|
+
BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
|
878
|
+
iterator emplace_equal(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
|
879
|
+
{ \
|
880
|
+
NodePtr p(AllocHolder::create_node(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _))); \
|
881
|
+
return iterator(this->icont().insert_equal(this->icont().end(), *p)); \
|
882
|
+
} \
|
883
|
+
\
|
884
|
+
BOOST_PP_EXPR_IF(n, template<) BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IF(n, >) \
|
885
|
+
iterator emplace_hint_equal(const_iterator hint \
|
886
|
+
BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_PARAM_LIST, _)) \
|
887
|
+
{ \
|
888
|
+
NodePtr p(AllocHolder::create_node(BOOST_PP_ENUM(n, BOOST_CONTAINER_PP_PARAM_FORWARD, _))); \
|
889
|
+
return iterator(this->icont().insert_equal(hint.get(), *p)); \
|
890
|
+
} \
|
891
|
+
//!
|
892
|
+
#define BOOST_PP_LOCAL_LIMITS (0, BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS)
|
893
|
+
#include BOOST_PP_LOCAL_ITERATE()
|
894
|
+
|
895
|
+
#endif //#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
|
896
|
+
|
897
|
+
iterator insert_unique(const_iterator hint, const value_type& v)
|
898
|
+
{
|
899
|
+
insert_commit_data data;
|
900
|
+
std::pair<iterator,bool> ret =
|
901
|
+
this->insert_unique_check(hint, KeyOfValue()(v), data);
|
902
|
+
if(!ret.second)
|
903
|
+
return ret.first;
|
904
|
+
return this->insert_unique_commit(v, data);
|
905
|
+
}
|
906
|
+
|
907
|
+
template<class MovableConvertible>
|
908
|
+
iterator insert_unique(const_iterator hint, BOOST_FWD_REF(MovableConvertible) mv)
|
909
|
+
{
|
910
|
+
insert_commit_data data;
|
911
|
+
std::pair<iterator,bool> ret =
|
912
|
+
this->insert_unique_check(hint, KeyOfValue()(mv), data);
|
913
|
+
if(!ret.second)
|
914
|
+
return ret.first;
|
915
|
+
return this->insert_unique_commit(boost::forward<MovableConvertible>(mv), data);
|
916
|
+
}
|
917
|
+
|
918
|
+
template <class InputIterator>
|
919
|
+
void insert_unique(InputIterator first, InputIterator last)
|
920
|
+
{
|
921
|
+
if(this->empty()){
|
922
|
+
//Insert with end hint, to achieve linear
|
923
|
+
//complexity if [first, last) is ordered
|
924
|
+
const_iterator hint(this->cend());
|
925
|
+
for( ; first != last; ++first)
|
926
|
+
hint = this->insert_unique(hint, *first);
|
927
|
+
}
|
928
|
+
else{
|
929
|
+
for( ; first != last; ++first)
|
930
|
+
this->insert_unique(*first);
|
931
|
+
}
|
932
|
+
}
|
933
|
+
|
934
|
+
iterator insert_equal(const value_type& v)
|
935
|
+
{
|
936
|
+
NodePtr p(AllocHolder::create_node(v));
|
937
|
+
return iterator(this->icont().insert_equal(this->icont().end(), *p));
|
938
|
+
}
|
939
|
+
|
940
|
+
template<class MovableConvertible>
|
941
|
+
iterator insert_equal(BOOST_FWD_REF(MovableConvertible) mv)
|
942
|
+
{
|
943
|
+
NodePtr p(AllocHolder::create_node(boost::forward<MovableConvertible>(mv)));
|
944
|
+
return iterator(this->icont().insert_equal(this->icont().end(), *p));
|
945
|
+
}
|
946
|
+
|
947
|
+
iterator insert_equal(const_iterator hint, const value_type& v)
|
948
|
+
{
|
949
|
+
NodePtr p(AllocHolder::create_node(v));
|
950
|
+
return iterator(this->icont().insert_equal(hint.get(), *p));
|
951
|
+
}
|
952
|
+
|
953
|
+
template<class MovableConvertible>
|
954
|
+
iterator insert_equal(const_iterator hint, BOOST_FWD_REF(MovableConvertible) mv)
|
955
|
+
{
|
956
|
+
NodePtr p(AllocHolder::create_node(boost::forward<MovableConvertible>(mv)));
|
957
|
+
return iterator(this->icont().insert_equal(hint.get(), *p));
|
958
|
+
}
|
959
|
+
|
960
|
+
template <class InputIterator>
|
961
|
+
void insert_equal(InputIterator first, InputIterator last)
|
962
|
+
{
|
963
|
+
//Insert with end hint, to achieve linear
|
964
|
+
//complexity if [first, last) is ordered
|
965
|
+
const_iterator hint(this->cend());
|
966
|
+
for( ; first != last; ++first)
|
967
|
+
hint = this->insert_equal(hint, *first);
|
968
|
+
}
|
969
|
+
|
970
|
+
iterator erase(const_iterator position)
|
971
|
+
{ return iterator(this->icont().erase_and_dispose(position.get(), Destroyer(this->node_alloc()))); }
|
972
|
+
|
973
|
+
size_type erase(const key_type& k)
|
974
|
+
{ return AllocHolder::erase_key(k, KeyNodeCompare(value_comp()), alloc_version()); }
|
975
|
+
|
976
|
+
iterator erase(const_iterator first, const_iterator last)
|
977
|
+
{ return iterator(AllocHolder::erase_range(first.get(), last.get(), alloc_version())); }
|
978
|
+
|
979
|
+
void clear()
|
980
|
+
{ AllocHolder::clear(alloc_version()); }
|
981
|
+
|
982
|
+
// set operations:
|
983
|
+
iterator find(const key_type& k)
|
984
|
+
{ return iterator(this->icont().find(k, KeyNodeCompare(value_comp()))); }
|
985
|
+
|
986
|
+
const_iterator find(const key_type& k) const
|
987
|
+
{ return const_iterator(this->non_const_icont().find(k, KeyNodeCompare(value_comp()))); }
|
988
|
+
|
989
|
+
size_type count(const key_type& k) const
|
990
|
+
{ return size_type(this->icont().count(k, KeyNodeCompare(value_comp()))); }
|
991
|
+
|
992
|
+
iterator lower_bound(const key_type& k)
|
993
|
+
{ return iterator(this->icont().lower_bound(k, KeyNodeCompare(value_comp()))); }
|
994
|
+
|
995
|
+
const_iterator lower_bound(const key_type& k) const
|
996
|
+
{ return const_iterator(this->non_const_icont().lower_bound(k, KeyNodeCompare(value_comp()))); }
|
997
|
+
|
998
|
+
iterator upper_bound(const key_type& k)
|
999
|
+
{ return iterator(this->icont().upper_bound(k, KeyNodeCompare(value_comp()))); }
|
1000
|
+
|
1001
|
+
const_iterator upper_bound(const key_type& k) const
|
1002
|
+
{ return const_iterator(this->non_const_icont().upper_bound(k, KeyNodeCompare(value_comp()))); }
|
1003
|
+
|
1004
|
+
std::pair<iterator,iterator> equal_range(const key_type& k)
|
1005
|
+
{
|
1006
|
+
std::pair<iiterator, iiterator> ret =
|
1007
|
+
this->icont().equal_range(k, KeyNodeCompare(value_comp()));
|
1008
|
+
return std::pair<iterator,iterator>(iterator(ret.first), iterator(ret.second));
|
1009
|
+
}
|
1010
|
+
|
1011
|
+
std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const
|
1012
|
+
{
|
1013
|
+
std::pair<iiterator, iiterator> ret =
|
1014
|
+
this->non_const_icont().equal_range(k, KeyNodeCompare(value_comp()));
|
1015
|
+
return std::pair<const_iterator,const_iterator>
|
1016
|
+
(const_iterator(ret.first), const_iterator(ret.second));
|
1017
|
+
}
|
1018
|
+
|
1019
|
+
private:
|
1020
|
+
|
1021
|
+
class insert_equal_end_hint_functor;
|
1022
|
+
friend class insert_equal_end_hint_functor;
|
1023
|
+
|
1024
|
+
class insert_equal_end_hint_functor
|
1025
|
+
{
|
1026
|
+
Icont &icont_;
|
1027
|
+
const iconst_iterator cend_;
|
1028
|
+
|
1029
|
+
public:
|
1030
|
+
insert_equal_end_hint_functor(Icont &icont)
|
1031
|
+
: icont_(icont), cend_(this->icont_.cend())
|
1032
|
+
{}
|
1033
|
+
|
1034
|
+
void operator()(Node &n)
|
1035
|
+
{ this->icont_.insert_equal(cend_, n); }
|
1036
|
+
};
|
1037
|
+
|
1038
|
+
class push_back_functor;
|
1039
|
+
friend class push_back_functor;
|
1040
|
+
|
1041
|
+
class push_back_functor
|
1042
|
+
{
|
1043
|
+
Icont &icont_;
|
1044
|
+
|
1045
|
+
public:
|
1046
|
+
push_back_functor(Icont &icont)
|
1047
|
+
: icont_(icont)
|
1048
|
+
{}
|
1049
|
+
|
1050
|
+
void operator()(Node &n)
|
1051
|
+
{ this->icont_.push_back(n); }
|
1052
|
+
};
|
1053
|
+
};
|
1054
|
+
|
1055
|
+
template <class Key, class Value, class KeyOfValue,
|
1056
|
+
class KeyCompare, class A>
|
1057
|
+
inline bool
|
1058
|
+
operator==(const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& x,
|
1059
|
+
const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& y)
|
1060
|
+
{
|
1061
|
+
return x.size() == y.size() &&
|
1062
|
+
std::equal(x.begin(), x.end(), y.begin());
|
1063
|
+
}
|
1064
|
+
|
1065
|
+
template <class Key, class Value, class KeyOfValue,
|
1066
|
+
class KeyCompare, class A>
|
1067
|
+
inline bool
|
1068
|
+
operator<(const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& x,
|
1069
|
+
const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& y)
|
1070
|
+
{
|
1071
|
+
return std::lexicographical_compare(x.begin(), x.end(),
|
1072
|
+
y.begin(), y.end());
|
1073
|
+
}
|
1074
|
+
|
1075
|
+
template <class Key, class Value, class KeyOfValue,
|
1076
|
+
class KeyCompare, class A>
|
1077
|
+
inline bool
|
1078
|
+
operator!=(const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& x,
|
1079
|
+
const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& y) {
|
1080
|
+
return !(x == y);
|
1081
|
+
}
|
1082
|
+
|
1083
|
+
template <class Key, class Value, class KeyOfValue,
|
1084
|
+
class KeyCompare, class A>
|
1085
|
+
inline bool
|
1086
|
+
operator>(const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& x,
|
1087
|
+
const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& y) {
|
1088
|
+
return y < x;
|
1089
|
+
}
|
1090
|
+
|
1091
|
+
template <class Key, class Value, class KeyOfValue,
|
1092
|
+
class KeyCompare, class A>
|
1093
|
+
inline bool
|
1094
|
+
operator<=(const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& x,
|
1095
|
+
const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& y) {
|
1096
|
+
return !(y < x);
|
1097
|
+
}
|
1098
|
+
|
1099
|
+
template <class Key, class Value, class KeyOfValue,
|
1100
|
+
class KeyCompare, class A>
|
1101
|
+
inline bool
|
1102
|
+
operator>=(const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& x,
|
1103
|
+
const rbtree<Key,Value,KeyOfValue,KeyCompare,A>& y) {
|
1104
|
+
return !(x < y);
|
1105
|
+
}
|
1106
|
+
|
1107
|
+
|
1108
|
+
template <class Key, class Value, class KeyOfValue,
|
1109
|
+
class KeyCompare, class A>
|
1110
|
+
inline void
|
1111
|
+
swap(rbtree<Key,Value,KeyOfValue,KeyCompare,A>& x,
|
1112
|
+
rbtree<Key,Value,KeyOfValue,KeyCompare,A>& y)
|
1113
|
+
{
|
1114
|
+
x.swap(y);
|
1115
|
+
}
|
1116
|
+
|
1117
|
+
} //namespace container_detail {
|
1118
|
+
} //namespace container {
|
1119
|
+
/*
|
1120
|
+
//!has_trivial_destructor_after_move<> == true_type
|
1121
|
+
//!specialization for optimizations
|
1122
|
+
template <class K, class V, class KOV,
|
1123
|
+
class C, class A>
|
1124
|
+
struct has_trivial_destructor_after_move
|
1125
|
+
<boost::container::container_detail::rbtree<K, V, KOV, C, A> >
|
1126
|
+
{
|
1127
|
+
static const bool value = has_trivial_destructor_after_move<A>::value && has_trivial_destructor_after_move<C>::value;
|
1128
|
+
};
|
1129
|
+
*/
|
1130
|
+
} //namespace boost {
|
1131
|
+
|
1132
|
+
#include <boost/container/detail/config_end.hpp>
|
1133
|
+
|
1134
|
+
#endif //BOOST_CONTAINER_TREE_HPP
|