00001 //-------------------------------------------------- 00012 //-------------------------------------------------- 00013 00014 #ifndef DATASET_H 00015 #define DATASET_H 00016 00017 #include "../global/global_definitions.h" 00018 #include "metadata.h" 00019 00020 #include <vector> 00021 #include <string> 00022 00023 namespace imedgine 00024 { 00025 00026 //-------------------------------------------------- 00029 00030 //-------------------------------------------------- 00045 //-------------------------------------------------- 00046 00047 class Dataset 00048 { 00049 public: 00050 00051 //-------------------------------------------------- 00056 00057 Dataset(dataset_type type, dataset_key_type dataset_key); 00058 00059 //-------------------------------------------------- 00062 00063 virtual ~Dataset(); 00064 00065 //-------------------------------------------------- 00069 00070 dataset_type getDatasetType() const; 00071 00072 //-------------------------------------------------- 00077 00078 dataset_key_type const& getDatasetKey() const; 00079 00080 //-------------------------------------------------- 00084 00085 bool isDataSet() const; 00086 00087 //-------------------------------------------------- 00091 00092 virtual metadata_pointer_type getMetadata() const = 0; 00093 00094 //-------------------------------------------------- 00099 00100 void setDirty(bool is_dirty); 00101 00102 //-------------------------------------------------- 00108 00109 bool isDirty() const; 00110 00111 protected: 00112 00113 //-------------------------------------------------- 00116 00117 Dataset(Dataset const&); 00118 00119 //-------------------------------------------------- 00122 00123 bool is_data_set_; 00124 00125 //-------------------------------------------------- 00130 bool is_dirty_; 00131 00132 private: 00133 00134 //-------------------------------------------------- 00137 00138 Dataset& operator = (Dataset const&) { return(*this); } 00139 00140 00141 //-------------------------------------------------- 00144 00145 dataset_type dataset_type_; 00146 00147 //-------------------------------------------------- 00150 00151 dataset_key_type dataset_key_; 00152 }; 00153 00154 } 00155 00156 #endif // Dataset_H 00157