deba@674: #ifndef MAP_DEFINES_H deba@674: #define MAP_DEFINES_H deba@674: deba@674: #define CREATE_EDGE_MAP_REGISTRY \ deba@674: typedef MapRegistry EdgeMapRegistry; \ deba@674: EdgeMapRegistry edge_maps; deba@674: deba@674: #define CREATE_NODE_MAP_REGISTRY \ deba@674: typedef MapRegistry NodeMapRegistry; \ deba@674: NodeMapRegistry node_maps; deba@674: deba@674: #define CREATE_MAP_REGISTRIES \ deba@674: CREATE_NODE_MAP_REGISTRY \ deba@674: CREATE_EDGE_MAP_REGISTRY deba@674: deba@674: #define CREATE_NODE_MAP_FACTORY(TemplateFactory) \ deba@674: typedef TemplateFactory NodeMapFactory; deba@674: deba@674: #define CREATE_EDGE_MAP_FACTORY(TemplateFactory) \ deba@674: typedef TemplateFactory EdgeMapFactory; deba@674: deba@674: #define CREATE_MAP_FACTORIES(TemplateFactory) \ deba@674: CREATE_NODE_MAP_FACTORY(TemplateFactory) \ deba@674: CREATE_EDGE_MAP_FACTORY(TemplateFactory) deba@674: deba@674: #define IMPORT_NODE_MAP(Factory) \ deba@674: template \ deba@674: class NodeMap : public Factory::Map { \ deba@674: public: \ deba@674: NodeMap() {} \ deba@674: NodeMap(Graph& g) : Factory::Map(g, g.node_maps) {} \ deba@674: }; deba@674: deba@674: #define IMPORT_EDGE_MAP(Factory) \ deba@674: template \ deba@674: class EdgeMap : public Factory::Map { \ deba@674: public: \ deba@674: EdgeMap() {} \ deba@674: EdgeMap(Graph& g) : Factory::Map(g, g.edge_maps) {} \ deba@674: }; deba@674: deba@674: #define CREATE_MAPS(TemplateFactory) \ deba@674: CREATE_MAP_FACTORIES(TemplateFactory) \ deba@674: IMPORT_NODE_MAP(NodeMapFactory) \ deba@674: IMPORT_EDGE_MAP(EdgeMapFactory) deba@674: deba@674: #endif