void XorFilter::write(const std::vector<ByteBuffer> &byteBuffers) { // need to make copies of any readonly buffers before transforming // TODO: only do this if at least one byte buffer is non-readonly createNonReadOnlyByteBuffers(mByteBuffers, byteBuffers); // in place transformation for (std::size_t i=0; i<mByteBuffers.size(); ++i) { for (std::size_t j=0; j<mByteBuffers[i].getLength() ; ++j) { mByteBuffers[i].getPtr() [j] ^= mMask; } } getPostFilter().write(mByteBuffers); mByteBuffers.resize(0); }
void IdentityFilter::write(const std::vector<ByteBuffer> &byteBuffers) { getPostFilter().write(byteBuffers); }
void IdentityFilter::read(const ByteBuffer &byteBuffer, std::size_t bytesRequested) { getPostFilter().read(byteBuffer, bytesRequested); }