⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tarinputstream.h

📁 lucene in java大家一定听说过了
💻 H
字号:
/*------------------------------------------------------------------------------* Copyright (C) 2003-2006 Jos van den Oever* * Distributable under the terms of either the Apache License (Version 2.0) or * the GNU Lesser General Public License, as specified in the COPYING file.------------------------------------------------------------------------------*/#ifndef TARINPUTSTREAM_H#define TARINPUTSTREAM_H#include "substreamprovider.h"/** * Implementation of SubStreamProvider for reading the tar format. The InputStream recognizes this format: * - tar archive is composed of blocks of 512 bytes. Every file and every header starts at an offset *   of a multiple of 512. * - each file starts with a header of size 512. * - up to 100 bytes of filename at offset 0 of file header * - file size is given in 7 bytes of octal format starting at position 124 of the file header * - if the filename is '././@LongLink' then this block contains the length of the file name at *   position 124. The next blocks contain the filename. The block after that is the real header *   with the file size and only then does the file contents start. * * http://www.gnu.org/software/tar/manual/html_node/Standard.html **/namespace jstreams {class TarInputStream : public SubStreamProvider {private:    // information relating to the current entry    StreamBase<char> *output;    int32_t numPaddingBytes;    void readFileName(int32_t len);    const char* readHeader();    void parseHeader();    int32_t readOctalField(const char *b, int32_t offset);    void readLongLink(const char *b);public:    TarInputStream(StreamBase<char> *input);    ~TarInputStream();    StreamBase<char>* nextEntry();    static bool checkHeader(const char* data, int32_t datasize);};} // end namespace jstreams#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -