Tools.h++ Manual

17-20 104011 Tandem Computers Incorporated
17
strm << passengers_; // Will detect nil pointer
automatically
}
void Bus::restoreGuts(RWFile& f)
{
RWCollectable::restoreGuts(f); // Restore base class
f.Read(busNumber_); // Restore primitive
f >> driver_ >> customers_; // Uses Tools.h++ provided
versions
delete passengers_; // Delete old RWSet
f >> passengers_; // Replace with a new one
}
void Bus::restoreGuts(RWvistream& strm)
{
RWCollectable::restoreGuts(strm);// Restore base class
strm >> busNumber_ >> driver_ >> customers_;
delete passengers_; // Delete old RWSet
strm >> passengers_; // Replace with a new one
}
void
Bus::addPassenger(const char* name)
{
RWCollectableString* s = new RWCollectableString(name);
customers_.insert( s );
if (!passengers_)
passengers_ = new RWSet;
passengers_->insert(s);
}
void
Bus::addCustomer(const char* name)
{
customers_.insert( new RWCollectableString(name) );
}
main()