1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // (C) Copyright Ion Gaztanaga 2007-2012. 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_DETAIL_NODE_TOOLS_HPP
- #define BOOST_INTERPROCESS_DETAIL_NODE_TOOLS_HPP
- #if (defined _MSC_VER) && (_MSC_VER >= 1200)
- # pragma once
- #endif
- #include <boost/interprocess/detail/config_begin.hpp>
- #include <boost/interprocess/detail/workaround.hpp>
- #include <boost/intrusive/slist.hpp>
- namespace boost {
- namespace interprocess {
- namespace ipcdetail {
- template<class VoidPointer>
- struct node_slist
- {
- //This hook will be used to chain the individual nodes
- typedef typename bi::make_slist_base_hook
- <bi::void_pointer<VoidPointer>, bi::link_mode<bi::normal_link> >::type slist_hook_t;
- //A node object will hold node_t when it's not allocated
- struct node_t
- : public slist_hook_t
- {};
- typedef typename bi::make_slist
- <node_t, bi::linear<true>, bi::base_hook<slist_hook_t> >::type node_slist_t;
- };
- } //namespace ipcdetail {
- } //namespace interprocess {
- } //namespace boost {
- #include <boost/interprocess/detail/config_end.hpp>
- #endif //#ifndef BOOST_INTERPROCESS_DETAIL_NODE_TOOLS_HPP
|