From: Michal 'vorner' Vaner Date: Fri, 19 Oct 2012 16:58:57 +0000 (+0200) Subject: [2207] Use state variable X-Git-Tag: trac2402_base~12^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=451973cb26da61f3e5d56c441ea54a28c34acaa3;p=thirdparty%2Fkea.git [2207] Use state variable Instead of several boolean variables. --- diff --git a/src/lib/datasrc/memory/zone_writer_local.cc b/src/lib/datasrc/memory/zone_writer_local.cc index de3d91baec..a14cbff1c4 100644 --- a/src/lib/datasrc/memory/zone_writer_local.cc +++ b/src/lib/datasrc/memory/zone_writer_local.cc @@ -33,8 +33,7 @@ ZoneWriterLocal::ZoneWriterLocal(ZoneTableSegmentLocal* segment, origin_(origin), rrclass_(rrclass), zone_data_(NULL), - loaded_(false), - data_ready_(false) + state_(ZW_UNUSED) {} ZoneWriterLocal::~ZoneWriterLocal() { @@ -45,7 +44,7 @@ ZoneWriterLocal::~ZoneWriterLocal() { void ZoneWriterLocal::load() { - if (loaded_) { + if (state_ != ZW_UNUSED) { isc_throw(isc::InvalidOperation, "Trying to load twice"); } @@ -56,13 +55,12 @@ ZoneWriterLocal::load() { isc_throw(isc::InvalidOperation, "No data returned from load action"); } - loaded_ = true; - data_ready_ = true; + state_ = ZW_LOADED; } void ZoneWriterLocal::install() { - if (!data_ready_) { + if (state_ != ZW_LOADED) { isc_throw(isc::InvalidOperation, "No data to install"); } @@ -75,7 +73,7 @@ ZoneWriterLocal::install() { segment_->getMemorySegment(), rrclass_, origin_, zone_data_)); - data_ready_ = false; + state_ = ZW_INSTALLED; zone_data_ = result.zone_data; } @@ -86,7 +84,7 @@ ZoneWriterLocal::cleanup() { if (zone_data_ != NULL) { ZoneData::destroy(segment_->getMemorySegment(), zone_data_, rrclass_); zone_data_ = NULL; - data_ready_ = false; + state_ = ZW_CLEANED; } } diff --git a/src/lib/datasrc/memory/zone_writer_local.h b/src/lib/datasrc/memory/zone_writer_local.h index 366ae1abae..7231a5738a 100644 --- a/src/lib/datasrc/memory/zone_writer_local.h +++ b/src/lib/datasrc/memory/zone_writer_local.h @@ -79,10 +79,13 @@ private: dns::Name origin_; dns::RRClass rrclass_; ZoneData* zone_data_; - // The load was performed - bool loaded_; - // The data are ready to be installed - bool data_ready_; + enum State { + ZW_UNUSED, + ZW_LOADED, + ZW_INSTALLED, + ZW_CLEANED + }; + State state_; }; }