gravatar
deba@inf.elte.hu
deba@inf.elte.hu
Move to private copy constrcutors
0 2 0
default
2 files changed with 201 insertions and 148 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
... ...
@@ -388,2 +388,14 @@
388 388

	
389
  template <typename Digraph>
390
  class DigraphReader;
391

	
392
  template <typename Digraph>
393
  DigraphReader<Digraph> digraphReader(std::istream& is, Digraph& digraph);
394

	
395
  template <typename Digraph>
396
  DigraphReader<Digraph> digraphReader(const std::string& fn, Digraph& digraph);
397

	
398
  template <typename Digraph>
399
  DigraphReader<Digraph> digraphReader(const char *fn, Digraph& digraph);
400

	
389 401
  /// \ingroup lemon_io
... ...
@@ -511,27 +523,2 @@
511 523

	
512
    /// \brief Copy constructor
513
    ///
514
    /// The copy constructor transfers all data from the other reader,
515
    /// therefore the copied reader will not be usable more. 
516
    DigraphReader(DigraphReader& other) 
517
      : _is(other._is), local_is(other.local_is), _digraph(other._digraph),
518
	_use_nodes(other._use_nodes), _use_arcs(other._use_arcs),
519
	_skip_nodes(other._skip_nodes), _skip_arcs(other._skip_arcs) {
520

	
521
      other._is = 0;
522
      other.local_is = false;
523
      
524
      _node_index.swap(other._node_index);
525
      _arc_index.swap(other._arc_index);
526

	
527
      _node_maps.swap(other._node_maps);
528
      _arc_maps.swap(other._arc_maps);
529
      _attributes.swap(other._attributes);
530

	
531
      _nodes_caption = other._nodes_caption;
532
      _arcs_caption = other._arcs_caption;
533
      _attributes_caption = other._attributes_caption;
534

	
535
    }
536

	
537 524
    /// \brief Destructor
... ...
@@ -560,3 +547,31 @@
560 547
  private:
561
    
548

	
549
    friend DigraphReader<Digraph> digraphReader<>(std::istream& is, 
550
						  Digraph& digraph);    
551
    friend DigraphReader<Digraph> digraphReader<>(const std::string& fn, 
552
						  Digraph& digraph);   
553
    friend DigraphReader<Digraph> digraphReader<>(const char *fn, 
554
						  Digraph& digraph);    
555

	
556
    DigraphReader(DigraphReader& other) 
557
      : _is(other._is), local_is(other.local_is), _digraph(other._digraph),
558
	_use_nodes(other._use_nodes), _use_arcs(other._use_arcs),
559
	_skip_nodes(other._skip_nodes), _skip_arcs(other._skip_arcs) {
560

	
561
      other._is = 0;
562
      other.local_is = false;
563
      
564
      _node_index.swap(other._node_index);
565
      _arc_index.swap(other._arc_index);
566

	
567
      _node_maps.swap(other._node_maps);
568
      _arc_maps.swap(other._arc_maps);
569
      _attributes.swap(other._attributes);
570

	
571
      _nodes_caption = other._nodes_caption;
572
      _arcs_caption = other._arcs_caption;
573
      _attributes_caption = other._attributes_caption;
574

	
575
    }
576

	
562 577
    DigraphReader& operator=(const DigraphReader&);
... ...
@@ -1184,2 +1199,14 @@
1184 1199

	
1200
  template <typename Graph>
1201
  class GraphReader;
1202

	
1203
  template <typename Graph>
1204
  GraphReader<Graph> graphReader(std::istream& is, Graph& graph);    
1205

	
1206
  template <typename Graph>
1207
  GraphReader<Graph> graphReader(const std::string& fn, Graph& graph);   
1208

	
1209
  template <typename Graph>
1210
  GraphReader<Graph> graphReader(const char *fn, Graph& graph);    
1211

	
1185 1212
  /// \ingroup lemon_io
... ...
@@ -1262,27 +1289,2 @@
1262 1289

	
1263
    /// \brief Copy constructor
1264
    ///
1265
    /// The copy constructor transfers all data from the other reader,
1266
    /// therefore the copied reader will not be usable more. 
1267
    GraphReader(GraphReader& other) 
1268
      : _is(other._is), local_is(other.local_is), _graph(other._graph),
1269
	_use_nodes(other._use_nodes), _use_edges(other._use_edges),
1270
	_skip_nodes(other._skip_nodes), _skip_edges(other._skip_edges) {
1271

	
1272
      other._is = 0;
1273
      other.local_is = false;
1274
      
1275
      _node_index.swap(other._node_index);
1276
      _edge_index.swap(other._edge_index);
1277

	
1278
      _node_maps.swap(other._node_maps);
1279
      _edge_maps.swap(other._edge_maps);
1280
      _attributes.swap(other._attributes);
1281

	
1282
      _nodes_caption = other._nodes_caption;
1283
      _edges_caption = other._edges_caption;
1284
      _attributes_caption = other._attributes_caption;
1285

	
1286
    }
1287

	
1288 1290
    /// \brief Destructor
... ...
@@ -1311,3 +1313,28 @@
1311 1313
  private:
1312
    
1314
    friend GraphReader<Graph> graphReader<>(std::istream& is, Graph& graph);    
1315
    friend GraphReader<Graph> graphReader<>(const std::string& fn, 
1316
					    Graph& graph);   
1317
    friend GraphReader<Graph> graphReader<>(const char *fn, Graph& graph);    
1318

	
1319
    GraphReader(GraphReader& other) 
1320
      : _is(other._is), local_is(other.local_is), _graph(other._graph),
1321
	_use_nodes(other._use_nodes), _use_edges(other._use_edges),
1322
	_skip_nodes(other._skip_nodes), _skip_edges(other._skip_edges) {
1323

	
1324
      other._is = 0;
1325
      other.local_is = false;
1326
      
1327
      _node_index.swap(other._node_index);
1328
      _edge_index.swap(other._edge_index);
1329

	
1330
      _node_maps.swap(other._node_maps);
1331
      _edge_maps.swap(other._edge_maps);
1332
      _attributes.swap(other._attributes);
1333

	
1334
      _nodes_caption = other._nodes_caption;
1335
      _edges_caption = other._edges_caption;
1336
      _attributes_caption = other._attributes_caption;
1337

	
1338
    }
1339

	
1313 1340
    GraphReader& operator=(const GraphReader&);
... ...
@@ -1979,2 +2006,8 @@
1979 2006

	
2007
  class SectionReader;
2008

	
2009
  SectionReader sectionReader(std::istream& is);
2010
  SectionReader sectionReader(const std::string& fn);
2011
  SectionReader sectionReader(const char* fn);
2012
  
1980 2013
  /// \brief Section reader class
... ...
@@ -2021,15 +2054,2 @@
2021 2054

	
2022
    /// \brief Copy constructor
2023
    ///
2024
    /// The copy constructor transfers all data from the other reader,
2025
    /// therefore the copied reader will not be usable more. 
2026
    SectionReader(SectionReader& other) 
2027
      : _is(other._is), local_is(other.local_is) {
2028

	
2029
      other._is = 0;
2030
      other.local_is = false;
2031
      
2032
      _sections.swap(other._sections);
2033
    }
2034

	
2035 2055
    /// \brief Destructor
... ...
@@ -2048,2 +2068,15 @@
2048 2068
  private:
2069

	
2070
    friend SectionReader sectionReader(std::istream& is);
2071
    friend SectionReader sectionReader(const std::string& fn);
2072
    friend SectionReader sectionReader(const char* fn);
2073

	
2074
    SectionReader(SectionReader& other) 
2075
      : _is(other._is), local_is(other.local_is) {
2076

	
2077
      other._is = 0;
2078
      other.local_is = false;
2079
      
2080
      _sections.swap(other._sections);
2081
    }
2049 2082
    
... ...
@@ -2297,24 +2330,2 @@
2297 2330
      : _is(new std::ifstream(fn)), local_is(true) {}
2298

	
2299
    /// \brief Copy constructor
2300
    ///
2301
    /// The copy constructor transfers all data from the other reader,
2302
    /// therefore the copied reader will not be usable more. 
2303
    LgfContents(LgfContents& other)
2304
      : _is(other._is), local_is(other.local_is) {
2305
      
2306
      other._is = 0;
2307
      other.local_is = false;
2308
      
2309
      _node_sections.swap(other._node_sections);
2310
      _edge_sections.swap(other._edge_sections);
2311
      _attribute_sections.swap(other._attribute_sections);
2312
      _extra_sections.swap(other._extra_sections);
2313

	
2314
      _arc_sections.swap(other._arc_sections);
2315

	
2316
      _node_maps.swap(other._node_maps);
2317
      _edge_maps.swap(other._edge_maps);
2318
      _attributes.swap(other._attributes);
2319
    }
2320 2331
    
... ...
@@ -2325,2 +2336,9 @@
2325 2336

	
2337
  private:
2338
    
2339
    LgfContents(const LgfContents&);
2340
    LgfContents& operator=(const LgfContents&);
2341

	
2342
  public:
2343

	
2326 2344

	
Show white space 6 line context
... ...
@@ -306,2 +306,17 @@
306 306
  }
307

	
308
  template <typename Digraph>
309
  class DigraphWriter;
310

	
311
  template <typename Digraph>
312
  DigraphWriter<Digraph> digraphWriter(std::ostream& os, 
313
				       const Digraph& digraph);
314

	
315
  template <typename Digraph>
316
  DigraphWriter<Digraph> digraphWriter(const std::string& fn, 
317
				       const Digraph& digraph);
318

	
319
  template <typename Digraph>
320
  DigraphWriter<Digraph> digraphWriter(const char *fn, 
321
				       const Digraph& digraph);
307 322
  
... ...
@@ -364,3 +379,3 @@
364 379

	
365
    Digraph& _digraph;
380
    const Digraph& _digraph;
366 381

	
... ...
@@ -396,3 +411,3 @@
396 411
    /// output stream.
397
    DigraphWriter(std::ostream& is, Digraph& digraph) 
412
    DigraphWriter(std::ostream& is, const Digraph& digraph) 
398 413
      : _os(&is), local_os(false), _digraph(digraph),
... ...
@@ -404,3 +419,3 @@
404 419
    /// output file.
405
    DigraphWriter(const std::string& fn, Digraph& digraph) 
420
    DigraphWriter(const std::string& fn, const Digraph& digraph) 
406 421
      : _os(new std::ofstream(fn.c_str())), local_os(true), _digraph(digraph),
... ...
@@ -412,3 +427,3 @@
412 427
    /// output file.
413
    DigraphWriter(const char* fn, Digraph& digraph) 
428
    DigraphWriter(const char* fn, const Digraph& digraph) 
414 429
      : _os(new std::ofstream(fn)), local_os(true), _digraph(digraph),
... ...
@@ -416,25 +431,2 @@
416 431

	
417
    /// \brief Copy constructor
418
    ///
419
    /// The copy constructor transfers all data from the other writer,
420
    /// therefore the copied writer will not be usable more. 
421
    DigraphWriter(DigraphWriter& other) 
422
      : _os(other._os), local_os(other.local_os), _digraph(other._digraph),
423
	_skip_nodes(other._skip_nodes), _skip_arcs(other._skip_arcs) {
424

	
425
      other._os = 0;
426
      other.local_os = false;
427

	
428
      _node_index.swap(other._node_index);
429
      _arc_index.swap(other._arc_index);
430

	
431
      _node_maps.swap(other._node_maps);
432
      _arc_maps.swap(other._arc_maps);
433
      _attributes.swap(other._attributes);
434

	
435
      _nodes_caption = other._nodes_caption;
436
      _arcs_caption = other._arcs_caption;
437
      _attributes_caption = other._attributes_caption;
438
    }
439

	
440 432
    /// \brief Destructor
... ...
@@ -462,2 +454,28 @@
462 454
  private:
455

	
456
    friend DigraphWriter<Digraph> digraphWriter<>(std::ostream& os, 
457
						  const Digraph& digraph);
458
    friend DigraphWriter<Digraph> digraphWriter<>(const std::string& fn, 
459
						  const Digraph& digraph);   
460
    friend DigraphWriter<Digraph> digraphWriter<>(const char *fn, 
461
						  const Digraph& digraph);
462

	
463
    DigraphWriter(DigraphWriter& other) 
464
      : _os(other._os), local_os(other.local_os), _digraph(other._digraph),
465
	_skip_nodes(other._skip_nodes), _skip_arcs(other._skip_arcs) {
466

	
467
      other._os = 0;
468
      other.local_os = false;
469

	
470
      _node_index.swap(other._node_index);
471
      _arc_index.swap(other._arc_index);
472

	
473
      _node_maps.swap(other._node_maps);
474
      _arc_maps.swap(other._arc_maps);
475
      _attributes.swap(other._attributes);
476

	
477
      _nodes_caption = other._nodes_caption;
478
      _arcs_caption = other._arcs_caption;
479
      _attributes_caption = other._attributes_caption;
480
    }
463 481
    
... ...
@@ -846,3 +864,4 @@
846 864
  template <typename Digraph>
847
  DigraphWriter<Digraph> digraphWriter(std::ostream& os, Digraph& digraph) {
865
  DigraphWriter<Digraph> digraphWriter(std::ostream& os, 
866
				       const Digraph& digraph) {
848 867
    DigraphWriter<Digraph> tmp(os, digraph);
... ...
@@ -854,3 +873,3 @@
854 873
  DigraphWriter<Digraph> digraphWriter(const std::string& fn, 
855
				       Digraph& digraph) {
874
				       const Digraph& digraph) {
856 875
    DigraphWriter<Digraph> tmp(fn, digraph);
... ...
@@ -861,3 +880,4 @@
861 880
  template <typename Digraph>
862
  DigraphWriter<Digraph> digraphWriter(const char* fn, Digraph& digraph) {
881
  DigraphWriter<Digraph> digraphWriter(const char* fn, 
882
				       const Digraph& digraph) {
863 883
    DigraphWriter<Digraph> tmp(fn, digraph);
... ...
@@ -866,2 +886,14 @@
866 886

	
887
  template <typename Graph>
888
  class GraphWriter;
889

	
890
  template <typename Graph>
891
  GraphWriter<Graph> graphWriter(std::ostream& os, const Graph& graph);    
892

	
893
  template <typename Graph>
894
  GraphWriter<Graph> graphWriter(const std::string& fn, const Graph& graph);   
895

	
896
  template <typename Graph>
897
  GraphWriter<Graph> graphWriter(const char *fn, const Graph& graph);    
898

	
867 899
  /// \ingroup lemon_io
... ...
@@ -916,3 +948,3 @@
916 948
    /// output stream.
917
    GraphWriter(std::ostream& is, Graph& graph) 
949
    GraphWriter(std::ostream& is, const Graph& graph) 
918 950
      : _os(&is), local_os(false), _graph(graph),
... ...
@@ -924,3 +956,3 @@
924 956
    /// output file.
925
    GraphWriter(const std::string& fn, Graph& graph) 
957
    GraphWriter(const std::string& fn, const Graph& graph) 
926 958
      : _os(new std::ofstream(fn.c_str())), local_os(true), _graph(graph),
... ...
@@ -932,3 +964,3 @@
932 964
    /// output file.
933
    GraphWriter(const char* fn, Graph& graph) 
965
    GraphWriter(const char* fn, const Graph& graph) 
934 966
      : _os(new std::ofstream(fn)), local_os(true), _graph(graph),
... ...
@@ -936,25 +968,2 @@
936 968

	
937
    /// \brief Copy constructor
938
    ///
939
    /// The copy constructor transfers all data from the other writer,
940
    /// therefore the copied writer will not be usable more. 
941
    GraphWriter(GraphWriter& other) 
942
      : _os(other._os), local_os(other.local_os), _graph(other._graph),
943
	_skip_nodes(other._skip_nodes), _skip_edges(other._skip_edges) {
944

	
945
      other._os = 0;
946
      other.local_os = false;
947

	
948
      _node_index.swap(other._node_index);
949
      _edge_index.swap(other._edge_index);
950

	
951
      _node_maps.swap(other._node_maps);
952
      _edge_maps.swap(other._edge_maps);
953
      _attributes.swap(other._attributes);
954

	
955
      _nodes_caption = other._nodes_caption;
956
      _edges_caption = other._edges_caption;
957
      _attributes_caption = other._attributes_caption;
958
    }
959

	
960 969
    /// \brief Destructor
... ...
@@ -980,5 +989,31 @@
980 989
    }
990
    
991
  private:
981 992

	
982
  private:
983
    
993
    friend GraphWriter<Graph> graphWriter<>(std::ostream& os, 
994
					    const Graph& graph);    
995
    friend GraphWriter<Graph> graphWriter<>(const std::string& fn, 
996
					    const Graph& graph);   
997
    friend GraphWriter<Graph> graphWriter<>(const char *fn, 
998
					    const Graph& graph);    
999

	
1000
    GraphWriter(GraphWriter& other) 
1001
      : _os(other._os), local_os(other.local_os), _graph(other._graph),
1002
	_skip_nodes(other._skip_nodes), _skip_edges(other._skip_edges) {
1003

	
1004
      other._os = 0;
1005
      other.local_os = false;
1006

	
1007
      _node_index.swap(other._node_index);
1008
      _edge_index.swap(other._edge_index);
1009

	
1010
      _node_maps.swap(other._node_maps);
1011
      _edge_maps.swap(other._edge_maps);
1012
      _attributes.swap(other._attributes);
1013

	
1014
      _nodes_caption = other._nodes_caption;
1015
      _edges_caption = other._edges_caption;
1016
      _attributes_caption = other._attributes_caption;
1017
    }
1018

	
984 1019
    GraphWriter& operator=(const GraphWriter&);
... ...
@@ -1412,3 +1447,3 @@
1412 1447
  template <typename Graph>
1413
  GraphWriter<Graph> graphWriter(std::ostream& os, Graph& graph) {
1448
  GraphWriter<Graph> graphWriter(std::ostream& os, const Graph& graph) {
1414 1449
    GraphWriter<Graph> tmp(os, graph);
... ...
@@ -1419,3 +1454,3 @@
1419 1454
  template <typename Graph>
1420
  GraphWriter<Graph> graphWriter(const std::string& fn, Graph& graph) {
1455
  GraphWriter<Graph> graphWriter(const std::string& fn, const Graph& graph) {
1421 1456
    GraphWriter<Graph> tmp(fn, graph);
... ...
@@ -1426,3 +1461,3 @@
1426 1461
  template <typename Graph>
1427
  GraphWriter<Graph> graphWriter(const char* fn, Graph& graph) {
1462
  GraphWriter<Graph> graphWriter(const char* fn, const Graph& graph) {
1428 1463
    GraphWriter<Graph> tmp(fn, graph);
0 comments (0 inline)