Tulip  5.1.0
Large graphs analysis and drawing
TypeInterface.h
1 /*
2  *
3  * This file is part of Tulip (http://tulip.labri.fr)
4  *
5  * Authors: David Auber and the Tulip development Team
6  * from LaBRI, University of Bordeaux
7  *
8  * Tulip is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU Lesser General Public License
10  * as published by the Free Software Foundation, either version 3
11  * of the License, or (at your option) any later version.
12  *
13  * Tulip is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  * See the GNU General Public License for more details.
17  *
18  */
19 ///@cond DOXYGEN_HIDDEN
20 
21 
22 #ifndef TYPEINTERFACE_H
23 #define TYPEINTERFACE_H
24 
25 #include <set>
26 #include <vector>
27 #include <string>
28 #include <list>
29 #include <iostream>
30 #include <sstream>
31 
32 namespace tlp {
33 template<typename T>
34 class TypeInterface {
35 public:
36  typedef T RealType;
37  static RealType undefinedValue() {
38  return T();
39  }
40  static RealType defaultValue() {
41  return T();
42  }
43 
44  static unsigned int valueSize() {
45  return sizeof(T);
46  }
47 
48  static void write(std::ostream&, const RealType&) {}
49  static void writeb(std::ostream& oss, const RealType& v) {
50  oss.write((char *) &v, sizeof(v));
51  }
52 
53  static bool read(std::istream&, RealType&) {
54  return false;
55  }
56  static bool readb(std::istream& iss, RealType& v) {
57  return bool(iss.read((char *) &v, sizeof(v)));
58  }
59 
60  static std::string toString(const RealType &) {
61  return "";
62  }
63  static bool fromString(RealType &, const std::string &) {
64  return false;
65  }
66 };
67 }
68 
69 #endif // TYPEINTERFACE_H
70 ///@endcond