beautypg.com

HP Integrity NonStop J-Series User Manual

Page 231

background image

Bus::~Bus() {
customers_.clearAndDestroy();
delete passengers_;
}

RWspace
Bus::binaryStoreSize() const {
RWspace count = RWCollectable::binaryStoreSize() +
customers_.recursiveStoreSize() +
sizeof(busNumber_) +
driver_.binaryStoreSize();

if (passengers_)
count += passengers_->recursiveStoreSize();

return count;
}

int
Bus::compareTo(const RWCollectable* c) const {
const Bus* b = (const Bus*)c;
if (busNumber_ == b->busNumber_) return 0;
return busNumber_ > b->busNumber_ ? 1 : -1;
}

RWBoolean
Bus::isEqual(const RWCollectable* c) const {
const Bus* b = (const Bus*)c;
return busNumber_ == b->busNumber_;
}

unsigned
Bus::hash() const {
return (unsigned)busNumber_;
}

size_t
Bus::customers() const {
return customers_.entries();
}

size_t
Bus::passengers() const return passengers_ ? passengers_->entries() : 0;
}

void
Bus::saveGuts(RWFile& f) const {
RWCollectable::saveGuts(f); // Save base class
f.Write(busNumber_); // Write primitive directly
f << driver_ << customers_; // Use Rogue Wave provided versions
f << passengers_; // Will detect nil pointer automatically
}

This manual is related to the following products: