| 1035 | |
| 1036 | |
| 1037 | void graph::save(std::ostream* file) const { |
| 1038 | pre_graph_save_handler (file); |
| 1039 | (*file) << "graph [" << std::endl; |
| 1040 | (*file) << "directed " << (directed ? "1" : "0") << std::endl; |
| 1041 | |
| 1042 | node_iterator it = nodes_begin(); |
| 1043 | node_iterator end = nodes_end(); |
| 1044 | |
| 1045 | for (;it != end; ++it) { |
| 1046 | (*file) << "node [\n" << "id " << it->id() << "\n"; |
| 1047 | save_node_info_handler (file, *it); |
| 1048 | (*file) << " ]" << std::endl; |
| 1049 | } |
| 1050 | |
| 1051 | edge_iterator e_it = edges_begin(); |
| 1052 | edge_iterator e_end = edges_end(); |
| 1053 | |
| 1054 | for (; e_it != e_end; ++e_it) { |
| 1055 | (*file) << "edge [\n" << "source " << e_it->source().id() << "\n"; |
| 1056 | (*file) << "target " << e_it->target().id() << "\n"; |
| 1057 | save_edge_info_handler (file, *e_it); |
| 1058 | (*file) << " ]" << std::endl; |
| 1059 | } |
| 1060 | |
| 1061 | save_graph_info_handler (file); |
| 1062 | |
| 1063 | (*file) << "]" << std::endl; |
| 1064 | after_graph_save_handler (file); |
| 1065 | } |
| 1066 | |
| 1067 | int graph::save (const char* filename) const { |
| 1068 | |