43.2 SegmentAccessor

SegmentAccessor is an RAII class used to increment the access count on a segment. The segment is released when the SegmentAccessor destructs


class SegmentAccessor
{
public:
    SegmentAccessor(Segment* s = nullptr);
    ~SegmentAccessor();
    void Set(Segment* s);
    void Clear() { Set(nullptr); }
    Segment* Release();
    Segment& operator*() const { cxAssert(segment_); return *segment_; }
    Segment* operator->() const { cxAssert(segment_); return segment_; }

private:
    Segment* segment_;
};