TSPLIB
|
00001 00014 #ifndef _ValidateInstance_HPP_ 00015 #define _ValidateInstance_HPP_ 00016 00017 #include <ios> 00018 #include <sstream> 00019 #include <string> 00020 00021 #include "ValidateGraph.hpp" 00022 00023 00029 class Instance { 00030 private: 00034 std::string name; 00035 00039 std::string source; 00040 00044 std::string description; 00045 00049 std::streamsize doublePrecision; 00050 00055 std::streamsize ignoredDigits; 00056 00060 double doubleZero; 00061 00065 Graph *graph; 00066 00078 void init( 00079 const std::string &name, 00080 const std::string &source, 00081 const std::string &description, 00082 const std::streamsize doublePrecision, 00083 const std::streamsize ignoredDigits, 00084 const Graph &graph); 00085 00086 public: 00098 Instance( 00099 const std::string &name, 00100 const std::string &source, 00101 const std::string &description, 00102 const std::streamsize doublePrecision, 00103 const std::streamsize ignoredDigits, 00104 const Graph &graph); 00105 00110 Instance(const Instance &instance); 00111 00115 ~Instance(); 00116 00122 Instance &operator=(const Instance &instance); 00123 00130 friend std::ostream &operator<<(std::ostream &os, Instance &instance); 00131 00136 inline std::string getName() const { 00137 return (name); 00138 } 00139 00144 inline std::string getSource() const { 00145 return (source); 00146 } 00147 00152 inline std::string getDescription() const { 00153 return (description); 00154 } 00155 00160 inline std::streamsize getDoublePrecision() const { 00161 return (doublePrecision); 00162 } 00163 00172 inline std::streamsize getIgnoredDigits() const { 00173 return (ignoredDigits); 00174 } 00175 00180 inline double getDoubleZero() const { 00181 return (doubleZero); 00182 } 00183 00188 inline Graph *getGraph() const { 00189 return (graph); 00190 } 00191 }; 00192 00193 00194 #endif