45.9 SegmentUnreserver
SegmentUnreserver is an RAII class which calls UnreserveSegment
on the SUT for a given segment when it destructs.
class SegmentUnreserver
{
public:
SegmentUnreserver();
sut_(nullptr),
segid_(0)
{
}
void Set(SUT* sut, SegId segid)
{
if (sut_)
{
cxAssert(segid_ != 0);
sut_->UnreserveSegment(segid_);
}
sut_ = sut;
segid_ = segid;
}
void Release() { sut_ = nullptr; }
~SegmentUnreserver()
{
if (sut_)
{
sut_->UnreserveSegment(segid_);
}
}
private:
SUT* sut_;
SegId segid_;
};