COIN-OR::LEMON - Graph Library

Changeset 1115:444f69240539 in lemon-0.x for src/work/deba/graph_writer.h


Ignore:
Timestamp:
02/01/05 16:56:37 (19 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1514
Message:

Some changes in the IO and map utilities.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/work/deba/graph_writer.h

    r1037 r1115  
    5555
    5656    void write(std::ostream& os, const std::string& value) {
    57       char c;
    5857      os << "\"";
    5958      if (escaped) {
    6059        ostringstream ls;
    61         for (int i = 0; i < value.size(); ++i) {
     60        for (int i = 0; i < (int)value.size(); ++i) {
    6261          writeEscape(ls, value[i]);
    6362        }
     
    137136
    138137    ~GraphWriter() {
    139 
    140       for (typename NodeMapWriters::iterator it = node_map_writers.begin(); it != node_map_writers.end(); ++it) {
     138      for (typename NodeMapWriters::iterator it = node_map_writers.begin();
     139          it != node_map_writers.end(); ++it) {
    141140        delete it->second;
    142141      }
    143142
    144       for (typename EdgeMapWriters::iterator it = edge_map_writers.begin(); it != edge_map_writers.end(); ++it) {
     143      for (typename EdgeMapWriters::iterator it = edge_map_writers.begin();
     144           it != edge_map_writers.end(); ++it) {
    145145        delete it->second;
    146146      }
     
    151151
    152152    template <typename Map>
    153     GraphWriter& writeNodeMap(std::string name, const Map& map) {
    154       return writeNodeMap<typename WriterTraits::template Writer<typename Map::Value>, Map>(name, map);
     153    GraphWriter& addNodeMap(std::string name, const Map& map) {
     154      return addNodeMap<typename WriterTraits::template Writer<
     155        typename Map::Value>, Map>(name, map);
    155156    }
    156157
    157158    template <typename Writer, typename Map>
    158     GraphWriter& writeNodeMap(std::string name, const Map& map, const Writer& writer = Writer()) {
     159    GraphWriter& addNodeMap(std::string name, const Map& map,
     160                              const Writer& writer = Writer()) {
    159161      //      if (node_map_writers.find(name) != node_map_writers.end()) {
    160       //        throw Exception() << "Multiple write rule for node map: " << name;
     162      //        throw Exception() << "Multiple write rule for node map: "
     163      //        << name;
    161164      //      }
    162       node_map_writers.push_back(make_pair(name, new MapWriter<Node, Map, Writer>(map, writer)));
     165      node_map_writers.push_back(
     166        make_pair(name, new MapWriter<Node, Map, Writer>(map, writer)));
    163167      return *this;
    164168    }
     
    167171
    168172    template <typename Map>
    169     GraphWriter& writeEdgeMap(std::string name, const Map& map) {
    170       return writeEdgeMap<typename WriterTraits::template Writer<typename Map::Value>, Map>(name, map);
     173    GraphWriter& addEdgeMap(std::string name, const Map& map) {
     174      return addEdgeMap<typename WriterTraits::template Writer<typename Map::Value>, Map>(name, map);
    171175    }
    172176
    173177
    174178    template <typename Writer, typename Map>
    175     GraphWriter& writeEdgeMap(std::string name, const Map& map, const Writer& writer = Writer()) {
     179    GraphWriter& addEdgeMap(std::string name, const Map& map, const Writer& writer = Writer()) {
    176180      //      if (edge_map_writers.find(name) != edge_map_writers.end()) {
    177181      //        throw Exception() << "Multiple write rule for edge map: " << name;
     
    182186
    183187    // Node rules
    184     GraphWriter& writeNode(std::string name, const Node& node) {
     188    GraphWriter& addNode(std::string name, const Node& node) {
    185189      //      if (node_writers.find(name) != node_writers.end()) {
    186190      //        throw Exception() << "Multiple write rule for node";
    187191      //      }
    188192      node_writers.push_back(make_pair(name, node));
     193      return *this;
    189194    }
    190195
    191196    // Edge rules
    192197
    193     GraphWriter& writeEdge(std::string name, const Edge& edge) {
     198    GraphWriter& addEdge(std::string name, const Edge& edge) {
    194199      //      if (edge_writers.find(name) != edge_writers.end()) {
    195200      //        throw Exception() << "Multiple write rule for edge";
    196201      //      }
    197202      edge_writers.push_back(make_pair(name, edge));
     203      return *this;
    198204    }
    199205
     
    211217      if (node_map_writers.size() == 0) return;
    212218      os << "@nodeset" << std::endl;
    213       for (int i = 0; i < node_map_writers.size(); ++i) {
     219      for (int i = 0; i < (int)node_map_writers.size(); ++i) {
    214220        os << node_map_writers[i].first << '\t';
    215221      }
    216222      os << std::endl;
    217223      for (NodeIt it(graph); it != INVALID; ++it) {
    218         for (int i = 0; i < node_map_writers.size(); ++i) {
     224        for (int i = 0; i < (int)node_map_writers.size(); ++i) {
    219225          node_map_writers[i].second->write(os, it);
    220226        }
     
    231237      os << "@edgeset" << std::endl;
    232238      os << "\t\t";
    233       for (int i = 0; i < edge_map_writers.size(); ++i) {
     239      for (int i = 0; i < (int)edge_map_writers.size(); ++i) {
    234240        os << edge_map_writers[i].first << '\t';
    235241      }
     
    238244        node_map_writers[0].second->write(os, graph.source(it));
    239245        node_map_writers[0].second->write(os, graph.target(it));
    240         for (int i = 0; i < edge_map_writers.size(); ++i) {
     246        for (int i = 0; i < (int)edge_map_writers.size(); ++i) {
    241247          edge_map_writers[i].second->write(os, it);
    242248        }
     
    251257      }
    252258      os << "@nodes" << std::endl;
    253       for (int i = 0; i < node_writers.size(); ++i) {
     259      for (int i = 0; i < (int)node_writers.size(); ++i) {
    254260        os << node_writers[i].first << '\t';
    255261        node_map_writers[0].second->write(os, node_writers[i].second);
     
    264270      }
    265271      os << "@edges" << std::endl;
    266       for (int i = 0; i < edge_writers.size(); ++i) {
     272      for (int i = 0; i < (int)edge_writers.size(); ++i) {
    267273        os << edge_writers[i].first << '\t';
    268274        edge_map_writers[0].second->write(os, edge_writers[i].second);
     
    296302
    297303      virtual void write(std::ostream& os, const Item& item) {
    298         Value value;
    299304        writer.write(os, map[item]);
    300305      }
     
    304309
    305310
    306     typedef std::vector< std::pair<std::string, WriterBase<Node>*> > NodeMapWriters;
     311    typedef std::vector< std::pair<std::string, WriterBase<Node>*> >
     312      NodeMapWriters;
    307313    NodeMapWriters node_map_writers;
    308314
    309     typedef std::vector< std::pair<std::string, WriterBase<Edge>*> > EdgeMapWriters;
     315    typedef std::vector< std::pair<std::string, WriterBase<Edge>*> >
     316      EdgeMapWriters;
    310317    EdgeMapWriters edge_map_writers;
    311318
Note: See TracChangeset for help on using the changeset viewer.