00001 #ifndef SCTDATA_DEFECT_H 00002 #define SCTDATA_DEFECT_H 00003 00004 #include "ModuleElement.h" 00005 #include <iostream> 00006 #include <boost/optional.hpp> 00007 00008 namespace SctData { 00009 00010 class DefectPrototype; 00011 00020 class Defect { 00021 public: 00022 Defect(const DefectPrototype& proto, ModuleElement element, 00023 boost::optional<double> opt_par=boost::optional<double>::optional()); 00024 00029 const ModuleElement& getModuleElement() const; 00030 00035 const DefectPrototype& getPrototype() const; 00036 00041 bool operator==(const Defect& defect) const; 00042 00047 bool operator!=(const Defect& defect) const; 00048 00050 boost::optional<double> getParameter() const; 00051 00053 void setParameter(double param); 00054 00055 00056 private: 00057 const DefectPrototype* prototype; 00058 ModuleElement element; 00059 boost::optional<double> opt_par; 00060 }; 00061 } 00062 00063 std::ostream& operator << (std::ostream& os, const SctData::Defect& d); 00064 00065 #endif //SCTDATA_DEFECT_H