// this will only work if the caller is using // ::free to free the memory inline void* Buffer::donateBuffer(size_t offset) { DBXML_ASSERT(ownsMemory_ && (offset == 0)); void *ret = (void*)((char*)pBuffer_ + offset); ownsMemory_ = false; return ret; }
/// to store Dbt memory referenced by node ids void setMemory(void *mem) { DBXML_ASSERT(!memory_); memory_ = mem; }
// notification that a document can be removed // TBD -- not yet used or implemented void releaseDoc(int cid, const DocID &did) { DBXML_ASSERT(impl_); impl_->releaseDoc(cid, did); }
virtual void setEventWriter(EventWriter *writer) { writer_ = writer; isInternalWriter_ = true; DBXML_ASSERT(!ownsWriter_); // must not be owned }
virtual EventWriter *getEventWriter() const { DBXML_ASSERT(isInternalWriter_); return (EventWriter *)writer_; }