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);
    }
Esempio n. 2
0
 void IdentityFilter::write(const std::vector<ByteBuffer> &byteBuffers)
 {
     getPostFilter().write(byteBuffers);
 }
Esempio n. 3
0
 void IdentityFilter::read(const ByteBuffer &byteBuffer, std::size_t bytesRequested)
 {
     getPostFilter().read(byteBuffer, bytesRequested);
 }