COIN-OR::LEMON - Graph Library

Changeset 1705:3f63d9db307b in lemon-0.x for lemon/lemon_writer.h


Ignore:
Timestamp:
10/05/05 15:18:51 (14 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2232
Message:

Removing smart references

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/lemon_writer.h

    r1690 r1705  
    3636#include <lemon/utility.h>
    3737#include <lemon/maps.h>
     38#include <lemon/xy.h>
    3839
    3940#include <lemon/concept_check.h>
     
    8586    };
    8687
     88    template <typename Map>
     89    struct Ref { typedef const Map& Type; };
     90
     91    template <typename Graph, typename Map>
     92    class ForwardComposeMap {
     93    public:
     94      typedef typename Graph::UndirEdge Key;
     95      typedef typename Map::Value Value;
     96
     97      ForwardComposeMap(const Graph& _graph, const Map& _map)
     98        : graph(_graph), map(_map) {}
     99     
     100      Value operator[](const Key& key) {
     101        return map[graph.direct(key, false)];
     102      }
     103
     104    private:
     105      typename Ref<Map>::Type map;
     106      const Graph& graph;
     107    };
     108
     109    template <typename Graph, typename Map>
     110    ForwardComposeMap<Graph, Map>
     111    forwardComposeMap(const Graph& graph, const Map& map) {
     112      return ForwardComposeMap<Graph, Map>(graph, map);
     113    }
     114
     115    template <typename Graph, typename Map>
     116    class BackwardComposeMap {
     117    public:
     118      typedef typename Graph::UndirEdge Key;
     119      typedef typename Map::Value Value;
     120
     121      BackwardComposeMap(const Graph& _graph, const Map& _map)
     122        : graph(_graph), map(_map) {}
     123     
     124      Value operator[](const Key& key) {
     125        return map[graph.direct(key, false)];
     126      }
     127
     128    private:
     129      typename Ref<Map>::Type map;
     130      const Graph& graph;
     131    };
     132
     133    template <typename Graph, typename Map>
     134    BackwardComposeMap<Graph, Map>
     135    backwardComposeMap(const Graph& graph, const Map& map) {
     136      return BackwardComposeMap<Graph, Map>(graph, map);
     137    }
     138
     139    template <typename Graph, typename Map>
     140    struct Ref<ForwardComposeMap<Graph, Map> > {
     141      typedef ForwardComposeMap<Graph, Map> Type;
     142    };
     143
     144    template <typename Graph, typename Map>
     145    struct Ref<BackwardComposeMap<Graph, Map> > {
     146      typedef BackwardComposeMap<Graph, Map> Type;
     147    };
     148
     149    template <typename Map>
     150    struct Ref<XMap<Map> > {
     151      typedef XMap<Map> Type;
     152    };
     153    template <typename Map>
     154    struct Ref<ConstXMap<Map> > {
     155      typedef ConstXMap<Map> Type;
     156    };
     157
     158    template <typename Map>
     159    struct Ref<YMap<Map> > {
     160      typedef YMap<Map> Type;
     161    };
     162    template <typename Map>
     163    struct Ref<ConstYMap<Map> > {
     164      typedef ConstYMap<Map> Type;
     165    };
     166
    87167  }
    88168
     
    235315      typedef _Item Item;
    236316     
    237       typename SmartConstReference<Map>::Type map;
     317      typename _writer_bits::Ref<Map>::Type map;
    238318      Writer writer;
    239319
     
    454534    bool forceIdMap;
    455535   
    456     typename SmartConstReference<Graph>::Type graph;   
     536    const Graph& graph;   
    457537    std::string id;
    458538
     
    628708    bool forceIdMap;
    629709   
    630     typename SmartConstReference<Graph>::Type graph;   
     710    const Graph& graph;   
    631711    std::string id;
    632712
     
    747827      checkConcept<concept::ReadMap<Edge, typename Map::Value>, Map>();
    748828      checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>();
    749       writeUndirEdge("+" + name, composeMap(forwardMap(graph), map), writer);
    750       writeUndirEdge("-" + name, composeMap(backwardMap(graph), map), writer);
     829      writeUndirEdge("+" + name,
     830                     _writer_bits::forwardComposeMap(graph, map), writer);
     831      writeUndirEdge("-" + name,
     832                     _writer_bits::backwardComposeMap(graph, map), writer);
    751833      return *this;
    752834    }
     
    854936    bool forceIdMap;
    855937   
    856     typename SmartConstReference<Graph>::Type graph;   
     938    const Graph& graph;   
    857939    std::string id;
    858940
Note: See TracChangeset for help on using the changeset viewer.