Nagłówek:
Dator.hpp
Elementy modułu:
Moduł Dator
Dator to obiekt otaczający pojedynczą wartość jakiegoś typu i dający dostep do jej zapisu i odczytu poprzez łańcuch tekstowy. Przechowuje wskaźnik do tej wartości. Można go zmieniać w trakcie działania. Może być 0 - wtedy operacje zapisu i odczytu wartości po prostu zwracają false. Jesli nie jest 0, musi być poprawny. Dator działa dla wszystkich typów obsługiwanych przez SthToStr i StrToSth. Można też tworzyć własne specjalizacje. Są też wersje dla tych samych typów z const. Takie datory są tylko do odczytu - metoda zapisująca zwraca false. Niepowodzenie w ustawieniu wartości datora nie zmienia jego wartości.
int Value = 0;
common::Dator<int> D(&Value);
if (D.SetValue("123") == 0)
std::cout << "Set OK" << std::endl;
string s;
if (D.GetValue(&s) == 0)
std::cout << "Get OK: " << s << std::endl;
Wszystkie datory parametryzowane różnymi typami mają wspólną klasę bazową common::GenericDator z wirtualnymi metodami common::GenericDator::SetValue i common::GenericDator::GetValue.
Obiekt tej klasy przechowuje w swoim wnętrzu (i sam zarządza) kolekcję dowolnego rodzaju datorów identyfikowanych po nazwach.
int I = 123;
float F = 10.5f;
common::DatorGroup DG;
DG.Add("Strength", &I);
DG.Add("Life", &F);
if (DG.SetValue("Strength", "124"))
std::cout << "Set OK" << std::endl;
string s;
if (DG.GetValue("Life", &s))
std::cout << "Get OK: " << s << std::endl;