source: icGREP/icgrep-devel/icgrep/lz4/grep/lz4_grep_bytestream_generator.h @ 6145

Last change on this file since 6145 was 6145, checked in by xwa163, 6 weeks ago
  1. LZ4 Grep: complete utf8 character classes for multiplexing pipeline
  2. Implement multiple streams version of S2P and P2S
File size: 1.2 KB
Line 
1
2#ifndef ICGREP_LZ4_GREP_BYTESTREAM_GENERATOR_H
3#define ICGREP_LZ4_GREP_BYTESTREAM_GENERATOR_H
4
5#include "lz4_grep_base_generator.h"
6
7class LZ4GrepByteStreamGenerator: public LZ4GrepBaseGenerator {
8protected:
9    virtual parabix::StreamSetBuffer* generateUncompressedBitStreams() override;
10    virtual parabix::StreamSetBuffer* decompressBitStream(parabix::StreamSetBuffer* compressedByteStream, parabix::StreamSetBuffer* compressedBitStream) override;
11    virtual std::vector<parabix::StreamSetBuffer*> decompressBitStreams(parabix::StreamSetBuffer* compressedByteStream, std::vector<parabix::StreamSetBuffer*> compressedBitStreams) override;
12
13private:
14    unsigned calculateTwistWidth(unsigned numOfStreams);
15    parabix::StreamSetBuffer* twist(const std::unique_ptr<kernel::KernelBuilder> &b,
16                                    std::vector<parabix::StreamSetBuffer*> inputStreams,
17                                    unsigned twistWidth);
18    std::vector<parabix::StreamSetBuffer*> untwist(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, parabix::StreamSetBuffer* inputStream, unsigned twistWidth, std::vector<unsigned> numOfStreams);
19};
20
21
22#endif //ICGREP_LZ4_GREP_BYTESTREAM_GENERATOR_H
Note: See TracBrowser for help on using the repository browser.