1// Copyright 2008-2010 Gordon Woodhull 2// Distributed under the Boost Software License, Version 1.0. 3// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 5#ifndef BOOST_MSM_MPL_GRAPH_DETAIL_GRAPH_IMPLEMENTATION_INTERFACE_IPP_INCLUDED 6#define BOOST_MSM_MPL_GRAPH_DETAIL_GRAPH_IMPLEMENTATION_INTERFACE_IPP_INCLUDED 7 8// forward definitions of the producer metafunctions that need to be specialized for 9// each graph representation 10 11namespace boost { 12namespace msm { 13namespace mpl_graph { 14namespace detail { 15 16 // Edge->Target map for a Source for out_*, degree 17 template<typename RepresentationTag, typename Source, typename GraphData> 18 struct produce_out_map; 19 20 // Edge->Source map for a Target for in_*, degree 21 template<typename RepresentationTag, typename Target, typename GraphData> 22 struct produce_in_map; 23 24 // Edge->pair<Source,Target> map for source, target 25 template<typename RepresentationTag, typename GraphData> 26 struct produce_edge_st_map; 27 28 // Vertex set for VertexListGraph 29 template<typename RepresentationTag, typename GraphData> 30 struct produce_vertex_set; 31 32 // Edge set for EdgeListGraph 33 template<typename RepresentationTag, typename GraphData> 34 struct produce_edge_set; 35 36} // namespaces 37} 38} 39} 40 41#endif // BOOST_MSM_MPL_GRAPH_DETAIL_GRAPH_IMPLEMENTATION_INTERFACE_IPP_INCLUDED 42 43