// Copyright 2008-2010 Gordon Woodhull | |
// 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) | |
#ifndef BOOST_MSM_MPL_GRAPH_SEARCH_COLORS_HPP_INCLUDED | |
#define BOOST_MSM_MPL_GRAPH_SEARCH_COLORS_HPP_INCLUDED | |
namespace boost { | |
namespace msm { | |
namespace mpl_graph { | |
namespace search_colors { | |
struct White {}; | |
struct Gray {}; | |
struct Black {}; | |
} | |
struct create_search_color_map : mpl::map<> {}; | |
struct search_color_map_ops { | |
template<typename Node, typename Color, typename State> | |
struct set_color : | |
mpl::insert<State, mpl::pair<Node, Color> > | |
{}; | |
template<typename Node, typename State> | |
struct get_color : | |
mpl::if_<mpl::has_key<State, Node>, | |
mpl::at<State, Node>, | |
search_colors::White> | |
{}; | |
}; | |
} // namespace mpl_graph | |
} // namespace msm | |
} // namespace boost | |
#endif // BOOST_MSM_MPL_GRAPH_SEARCH_COLORS_HPP_INCLUDED |