origin_(origin),
rrclass_(rrclass),
zone_data_(NULL),
- loaded_(false),
- data_ready_(false)
+ state_(ZW_UNUSED)
{}
ZoneWriterLocal::~ZoneWriterLocal() {
void
ZoneWriterLocal::load() {
- if (loaded_) {
+ if (state_ != ZW_UNUSED) {
isc_throw(isc::InvalidOperation, "Trying to load twice");
}
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");
}
segment_->getMemorySegment(),
rrclass_, origin_, zone_data_));
- data_ready_ = false;
+ state_ = ZW_INSTALLED;
zone_data_ = result.zone_data;
}
if (zone_data_ != NULL) {
ZoneData::destroy(segment_->getMemorySegment(), zone_data_, rrclass_);
zone_data_ = NULL;
- data_ready_ = false;
+ state_ = ZW_CLEANED;
}
}