| ////////////////////////////////////////////////////////////////////////////// |
| // |
| // (C) Copyright Ion Gaztanaga 2005-2009. Distributed under the Boost |
| // Software License, Version 1.0. (See accompanying file |
| // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| // |
| // See http://www.boost.org/libs/interprocess for documentation. |
| // |
| ////////////////////////////////////////////////////////////////////////////// |
| #ifndef BOOST_INTERPROCESS_NULL_INDEX_HPP |
| #define BOOST_INTERPROCESS_NULL_INDEX_HPP |
| |
| #include <boost/interprocess/detail/config_begin.hpp> |
| #include <boost/interprocess/detail/workaround.hpp> |
| |
| #include <boost/interprocess/offset_ptr.hpp> |
| |
| //!\file |
| //!Describes a null index adaptor, so that if we don't want to construct |
| //!named objects, we can use this null index type to save resources. |
| |
| namespace boost { |
| namespace interprocess { |
| |
| //!Null index type |
| //!used to save compilation time when |
| //!named indexes are not needed. |
| template <class MapConfig> |
| class null_index |
| { |
| /// @cond |
| typedef typename MapConfig:: |
| segment_manager_base segment_manager_base; |
| /// @endcond |
| |
| public: |
| typedef void * iterator; |
| typedef const void * const_iterator; |
| |
| //!begin() is equal |
| //!to end() |
| const_iterator begin() const |
| { return const_iterator(0); } |
| |
| //!begin() is equal |
| //!to end() |
| iterator begin() |
| { return iterator(0); } |
| |
| //!begin() is equal |
| //!to end() |
| const_iterator end() const |
| { return const_iterator(0); } |
| |
| //!begin() is equal |
| //!to end() |
| iterator end() |
| { return iterator(0); } |
| |
| //!Empty constructor |
| null_index(segment_manager_base *){} |
| }; |
| |
| }} //namespace boost { namespace interprocess { |
| |
| #include <boost/interprocess/detail/config_end.hpp> |
| |
| #endif //#ifndef BOOST_INTERPROCESS_NULL_INDEX_HPP |