updated dcm version
This commit is contained in:
@@ -81,7 +81,7 @@ struct Injector {
|
||||
|
||||
void setClusterProperties(typename Sys::Cluster* cluster,
|
||||
typename details::pts<typename Sys::Cluster::cluster_properties>::type& prop) {
|
||||
cluster->m_cluster_bundle = prop;
|
||||
cluster->m_properties = prop;
|
||||
};
|
||||
void setVertexProperties(typename Sys::Cluster* cluster, LocalVertex v,
|
||||
typename details::pts<typename Sys::vertex_properties>::type& prop) {
|
||||
@@ -101,13 +101,13 @@ struct Injector {
|
||||
fusion::at_c<1>(cluster->operator[](e)) = bundles;
|
||||
};
|
||||
void setVertexProperty(typename Sys::Cluster* cluster, int value) {
|
||||
cluster->template setClusterProperty<details::cluster_vertex_prop>(value);
|
||||
cluster->template setProperty<details::cluster_vertex_prop>(value);
|
||||
};
|
||||
void addClusters(std::vector<typename Sys::Cluster*>& clusters, typename Sys::Cluster* cluster) {
|
||||
|
||||
typename std::vector<typename Sys::Cluster*>::iterator it;
|
||||
for(it = clusters.begin(); it != clusters.end(); it++) {
|
||||
LocalVertex v = cluster->getLocalVertex((*it)->template getClusterProperty<details::cluster_vertex_prop>()).first;
|
||||
LocalVertex v = cluster->getLocalVertex((*it)->template getProperty<details::cluster_vertex_prop>()).first;
|
||||
cluster->m_clusters[v] = boost::shared_ptr<typename Sys::Cluster>(*it);
|
||||
};
|
||||
};
|
||||
|
||||
@@ -56,7 +56,7 @@ template<typename Sys>
|
||||
struct generator : karma::grammar<Iterator, typename Sys::Cluster& ()> {
|
||||
|
||||
typedef typename Sys::Cluster graph;
|
||||
typedef typename graph::cluster_bundle graph_bundle;
|
||||
typedef typename graph::Properties graph_bundle;
|
||||
typedef typename boost::graph_traits<graph>::vertex_iterator viter;
|
||||
typedef typename boost::graph_traits<graph>::edge_iterator eiter;
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ BOOST_FUSION_ADAPT_TPL_STRUCT(
|
||||
(T1)(T2)(T3)(T4),
|
||||
(dcm::ClusterGraph) (T1)(T2)(T3)(T4),
|
||||
(int, test)
|
||||
(typename dcm::details::pts<T3>::type, m_cluster_bundle))
|
||||
(typename dcm::details::pts<T3>::type, m_properties))
|
||||
|
||||
|
||||
namespace boost { namespace spirit { namespace traits
|
||||
|
||||
@@ -21,10 +21,10 @@ namespace details {
|
||||
struct obj_grammar : public karma::grammar<Iterator, boost::shared_ptr<Object>()> {
|
||||
typename Gen::generator subrule;
|
||||
karma::rule<Iterator, boost::shared_ptr<Object>()> start;
|
||||
details::prop_gen<Sys, typename Object::Sequence > prop;
|
||||
details::prop_gen<Sys, typename Object::PropertySequence > prop;
|
||||
|
||||
obj_grammar();
|
||||
static void getProperties(boost::shared_ptr<Object> ptr, typename details::pts<typename Object::Sequence>::type& seq);
|
||||
static void getProperties(boost::shared_ptr<Object> ptr, typename details::pts<typename Object::PropertySequence>::type& seq);
|
||||
};
|
||||
|
||||
//when objects should not be generated we need to get a empy rule, as obj_rule_init
|
||||
|
||||
@@ -29,7 +29,7 @@ obj_grammar<Sys, Object,Gen>::obj_grammar() : obj_grammar<Sys, Object,Gen>::base
|
||||
};
|
||||
|
||||
template<typename Sys, typename Object, typename Gen>
|
||||
void obj_grammar<Sys, Object,Gen>::getProperties(boost::shared_ptr<Object> ptr, typename details::pts<typename Object::Sequence>::type& seq) {
|
||||
void obj_grammar<Sys, Object,Gen>::getProperties(boost::shared_ptr<Object> ptr, typename details::pts<typename Object::PropertySequence>::type& seq) {
|
||||
|
||||
if(ptr) seq = ptr->m_properties;
|
||||
else {
|
||||
|
||||
@@ -34,11 +34,11 @@ template<typename Sys, typename ObjList, typename Object, typename Par>
|
||||
struct obj_parser : public qi::grammar<IIterator, qi::unused_type(typename details::sps<ObjList>::type*, Sys*), qi::space_type> {
|
||||
typename Par::parser subrule;
|
||||
qi::rule<IIterator, qi::unused_type(typename details::sps<ObjList>::type*, Sys*), qi::space_type> start;
|
||||
prop_par<Sys, typename Object::Sequence > prop;
|
||||
prop_par<Sys, typename Object::PropertySequence > prop;
|
||||
|
||||
obj_parser();
|
||||
|
||||
static void setProperties(boost::shared_ptr<Object> ptr, typename details::pts<typename Object::Sequence>::type& seq);
|
||||
static void setProperties(boost::shared_ptr<Object> ptr, typename details::pts<typename Object::PropertySequence>::type& seq);
|
||||
};
|
||||
|
||||
//when objects should not be generated we need to get a empy rule, as obj_rule_init
|
||||
|
||||
@@ -57,7 +57,7 @@ obj_parser<Sys, ObjList, Object, Par>::obj_parser(): obj_parser::base_type(start
|
||||
};
|
||||
|
||||
template<typename Sys, typename ObjList, typename Object, typename Par>
|
||||
void obj_parser<Sys, ObjList, Object, Par>::setProperties(boost::shared_ptr<Object> ptr, typename details::pts<typename Object::Sequence>::type& seq) {
|
||||
void obj_parser<Sys, ObjList, Object, Par>::setProperties(boost::shared_ptr<Object> ptr, typename details::pts<typename Object::PropertySequence>::type& seq) {
|
||||
if(ptr) ptr->m_properties = seq;
|
||||
};
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
BOOST_FUSION_ADAPT_TPL_STRUCT(
|
||||
(T1)(T2)(T3)(T4),
|
||||
(dcm::ClusterGraph) (T1)(T2)(T3)(T4),
|
||||
(typename dcm::details::pts<T3>::type, m_cluster_bundle))
|
||||
(typename dcm::details::pts<T3>::type, m_properties))
|
||||
|
||||
#include "parser.hpp"
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ struct prop_parser_fold : mpl::fold< seq, state,
|
||||
mpl::push_back<mpl::_1, prop_parser<seq, mpl::_2, dcm::parser_parser<mpl::_2, Sys, IIterator> > >,
|
||||
mpl::_1 > > {};
|
||||
|
||||
//grammar for a fusion sequence of properties. currently max. 10 properties are supported
|
||||
//grammar for a fusion sequence of properties.
|
||||
template<typename Sys, typename PropertyList>
|
||||
struct prop_par : qi::grammar<IIterator, typename details::pts<PropertyList>::type(), qi::space_type> {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user