您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BZ2_bzDecompressInit函数代码示例

51自学网 2021-06-01 19:54:23
  C++
这篇教程C++ BZ2_bzDecompressInit函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BZ2_bzDecompressInit函数的典型用法代码示例。如果您正苦于以下问题:C++ BZ2_bzDecompressInit函数的具体用法?C++ BZ2_bzDecompressInit怎么用?C++ BZ2_bzDecompressInit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BZ2_bzDecompressInit函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: MojoInput_bzip2_seek

static boolean MojoInput_bzip2_seek(MojoInput *io, uint64 offset){    // This is all really expensive.    BZIP2info *info = (BZIP2info *) io->opaque;    /*     * If seeking backwards, we need to redecode the file     *  from the start and throw away the compressed bits until we hit     *  the offset we need. If seeking forward, we still need to     *  decode, but we don't rewind first.     */    if (offset < info->uncompressed_position)    {#if 0        /* we do a copy so state is sane if inflateInit2() fails. */        bz_stream str;        initializeBZ2Stream(&str);        if (BZ2_bzDecompressInit(&str, 0, 0) != BZ_OK)            return false;        if (!info->origio->seek(info->origio, 0))            return false;  // !!! FIXME: leaking (str)?        BZ2_bzDecompressEnd(&info->stream);        memcpy(&info->stream, &str, sizeof (bz_stream));#endif        if (!info->origio->seek(info->origio, 0))            return false;        BZ2_bzDecompressEnd(&info->stream);        initializeBZ2Stream(&info->stream);        if (BZ2_bzDecompressInit(&info->stream, 0, 0) != BZ_OK)            return false;        info->uncompressed_position = 0;    } // if    while (info->uncompressed_position != offset)    {        uint8 buf[512];        uint32 maxread;        int64 br;        maxread = (uint32) (offset - info->uncompressed_position);        if (maxread > sizeof (buf))            maxread = sizeof (buf);        br = io->read(io, buf, maxread);        if (br != maxread)            return false;    } /* while */    return true;} // MojoInput_bzip2_seek
开发者ID:fgouget,项目名称:mojosetup-fg,代码行数:53,


示例2: memzero

UnBZFilter::UnBZFilter() {	memzero(&zs, sizeof(zs));	if(BZ2_bzDecompressInit(&zs, 0, 0) != BZ_OK) 		throw Exception(STRING(DECOMPRESSION_ERROR));}
开发者ID:strogo,项目名称:StrongDC,代码行数:7,


示例3: BufFilePushBZIP2

_X_HIDDEN BufFilePtrBufFilePushBZIP2 (BufFilePtr f){    xzip_buf *x;    x = malloc (sizeof (xzip_buf));    if (!x) return NULL;    bzero(&(x->z), sizeof(bz_stream));    x->f = f;    x->zstat = BZ2_bzDecompressInit(&(x->z),				    0,	/* verbosity: 0 silent, 4 max */				    0);	/* 0: go faster, 1: use less memory */    if (x->zstat != BZ_OK) {	free(x);	return NULL;    }    /* now that the history buffer is allocated, we provide the data buffer */    x->z.next_out = (char *) x->b;    x->z.avail_out = BUFFILESIZE;    x->z.next_in = (char *) x->b_in;    x->z.avail_in = 0;    return BufFileCreate((char *)x,			 BufBzip2FileFill,			 NULL,			 BufBzip2FileSkip,			 BufBzip2FileClose);}
开发者ID:OpenInkpot-archive,项目名称:iplinux-libxfont,代码行数:31,


示例4: ft_bzip2_file_reset

  static FT_Error  ft_bzip2_file_reset( FT_BZip2File  zip )  {    FT_Stream  stream = zip->source;    FT_Error   error;    if ( !FT_STREAM_SEEK( 0 ) )    {      bz_stream*  bzstream = &zip->bzstream;      BZ2_bzDecompressEnd( bzstream );      bzstream->avail_in  = 0;      bzstream->next_in   = (char*)zip->input;      bzstream->avail_out = 0;      bzstream->next_out  = (char*)zip->buffer;      zip->limit  = zip->buffer + FT_BZIP2_BUFFER_SIZE;      zip->cursor = zip->limit;      zip->pos    = 0;      BZ2_bzDecompressInit( bzstream, 0, 0 );    }    return error;  }
开发者ID:03050903,项目名称:Urho3D,代码行数:28,


示例5: squash_bz2_stream_new

static SquashBZ2Stream*squash_bz2_stream_new (SquashCodec* codec, SquashStreamType stream_type, SquashOptions* options) {  int bz2_e = 0;  SquashBZ2Stream* stream;  assert (codec != NULL);  assert (stream_type == SQUASH_STREAM_COMPRESS || stream_type == SQUASH_STREAM_DECOMPRESS);  stream = squash_malloc (sizeof (SquashBZ2Stream));  squash_bz2_stream_init (stream, codec, stream_type, options, squash_bz2_stream_destroy);  if (stream_type == SQUASH_STREAM_COMPRESS) {    bz2_e = BZ2_bzCompressInit (&(stream->stream),                                squash_codec_get_option_int_index (codec, options, SQUASH_BZ2_OPT_LEVEL),                                0,                                squash_codec_get_option_int_index (codec, options, SQUASH_BZ2_OPT_WORK_FACTOR));  } else if (stream_type == SQUASH_STREAM_DECOMPRESS) {    bz2_e = BZ2_bzDecompressInit (&(stream->stream),                                  0,                                  squash_codec_get_option_int_index (codec, options, SQUASH_BZ2_OPT_SMALL));  } else {    squash_assert_unreachable();  }  if (bz2_e != BZ_OK) {    /* We validate the params so OOM is really the only time this       should happen, and that really shouldn't be happening here. */    stream = squash_object_unref (stream);  }  return stream;}
开发者ID:szabadka,项目名称:squash,代码行数:32,


示例6: malloc

io_t *bz_open(io_t *parent){	io_t *io;	if (!parent)		return NULL;	io = malloc(sizeof(io_t));	io->source = &bz_source;	io->data = malloc(sizeof(struct bz_t));	DATA(io)->parent = parent;	DATA(io)->strm.next_in = NULL;	DATA(io)->strm.avail_in = 0;	DATA(io)->strm.next_out = NULL;	DATA(io)->strm.avail_out = 0;	DATA(io)->strm.bzalloc = NULL;	DATA(io)->strm.bzfree = NULL;	DATA(io)->strm.opaque = NULL;	DATA(io)->err = ERR_OK;	BZ2_bzDecompressInit(&DATA(io)->strm, 		0, 	/* Verbosity */		0);	/* small */	return io;}
开发者ID:rsanger,项目名称:libtrace,代码行数:26,


示例7: squash_bz2_stream_new

static SquashBZ2Stream*squash_bz2_stream_new (SquashCodec* codec, SquashStreamType stream_type, SquashBZ2Options* options) {  int bz2_e = 0;  SquashBZ2Stream* stream;  assert (codec != NULL);  assert (stream_type == SQUASH_STREAM_COMPRESS || stream_type == SQUASH_STREAM_DECOMPRESS);  stream = (SquashBZ2Stream*) malloc (sizeof (SquashBZ2Stream));  squash_bz2_stream_init (stream, codec, stream_type, options, squash_bz2_stream_free);  if (stream_type == SQUASH_STREAM_COMPRESS) {    bz2_e = BZ2_bzCompressInit (&(stream->stream),                                squash_bz2_options_get_block_size_100k (options),                                0,                                squash_bz2_options_get_work_factor (options));  } else if (stream_type == SQUASH_STREAM_DECOMPRESS) {    bz2_e = BZ2_bzDecompressInit (&(stream->stream),                                  0,                                  squash_bz2_options_get_small (options) ? 1 : 0);  } else {    assert (false);  }  if (bz2_e != BZ_OK) {    /* We validate the params so OOM is really the only time this       should happen, and that really shouldn't be happening here. */    stream = squash_object_unref (stream);  }  return stream;}
开发者ID:anthrotype,项目名称:squash,代码行数:32,


示例8: libmpq__decompress_bzip2

/* this function decompress a stream using bzip2 library. */int32_t libmpq__decompress_bzip2(uint8_t *in_buf, uint32_t in_size, uint8_t *out_buf, uint32_t out_size) {	/* some common variables. */	int32_t result = 0;	int32_t tb     = 0;	bz_stream strm;	/* initialize the bzlib decompression. */	strm.bzalloc = NULL;	strm.bzfree  = NULL;	/* initialize the structure. */	if ((result = BZ2_bzDecompressInit(&strm, 0, 0)) != BZ_OK) {		/* something on bzlib initialization failed. */		return result;	}	/* fill the stream structure for bzlib. */	strm.next_in   = (char *)in_buf;	strm.avail_in  = in_size;	strm.next_out  = (char *)out_buf;	strm.avail_out = out_size;	/* do the decompression. */	while (BZ2_bzDecompress(&strm) != BZ_STREAM_END);	/* save transferred bytes. */	tb = strm.total_out_lo32;	/* cleanup of bzip stream. */	BZ2_bzDecompressEnd(&strm);	/* return transferred bytes. */	return tb;}
开发者ID:Blumfield,项目名称:TBCPvP,代码行数:35,


示例9: BZ2_bzCompressInit

void bzip2_base::do_init    ( bool compress,       #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)          bzip2::alloc_func alloc,           bzip2::free_func free,       #endif      void* derived ){    bz_stream* s = static_cast<bz_stream*>(stream_);    // Current interface for customizing memory management     // is non-conforming and has been disabled:    //#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)    //    s->bzalloc = alloc;    //    s->bzfree = free;    //#else        s->bzalloc = 0;        s->bzfree = 0;    //#endif    s->opaque = derived;    bzip2_error::check(         compress ?            BZ2_bzCompressInit( s,                                params_.block_size,                                 0,                                 params_.work_factor ) :            BZ2_bzDecompressInit( s,                                   0,                                   params_.small )    );    ready_ = true;}
开发者ID:rzymek,项目名称:cxxsp,代码行数:32,


示例10: start

static boolstart(void *ud) {    struct ctx *ctx = (struct ctx *)ud;    int ret;    ctx->zstr.avail_in = 0;    ctx->zstr.next_in = NULL;    ctx->zstr.avail_out = 0;    ctx->zstr.next_out = NULL;    if (ctx->compress) {	ret = BZ2_bzCompressInit(&ctx->zstr, ctx->compression_flags, 0, 30);    }    else {	ret = BZ2_bzDecompressInit(&ctx->zstr, 0, 0);    }    if (ret != BZ_OK) {	zip_error_set(ctx->error, map_error(ret), 0);	return false;    }    return true;}
开发者ID:newser,项目名称:TitanSDK,代码行数:25,


示例11: xmalloc

static MojoInput *make_bzip2_input(MojoInput *origio){    MojoInput *io = NULL;    BZIP2info *info = (BZIP2info *) xmalloc(sizeof (BZIP2info));    initializeBZ2Stream(&info->stream);    if (BZ2_bzDecompressInit(&info->stream, 0, 0) != BZ_OK)    {        free(info);        return NULL;    } // if    info->origio = origio;    io = (MojoInput *) xmalloc(sizeof (MojoInput));    io->ready = MojoInput_bzip2_ready;    io->read = MojoInput_bzip2_read;    io->seek = MojoInput_bzip2_seek;    io->tell = MojoInput_bzip2_tell;    io->length = MojoInput_bzip2_length;    io->duplicate = MojoInput_bzip2_duplicate;    io->close = MojoInput_bzip2_close;    io->opaque = info;    return io;} // make_bzip2_input
开发者ID:fgouget,项目名称:mojosetup-fg,代码行数:25,


示例12: open

// Try open file streambool FXBZFileStream::open(const FXString& filename,FXStreamDirection save_or_load,FXuval size){  if(FXFileStream::open(filename,save_or_load,size)){    if(FXCALLOC(&bz,BZBlock,1)){      int bzerror;      bz->stream.next_in=NULL;      bz->stream.avail_in=0;      bz->stream.next_out=NULL;      bz->stream.avail_out=0;      ac=BZ_RUN;      if(save_or_load==FXStreamLoad){        bzerror=BZ2_bzDecompressInit(&bz->stream,VERBOSITY,0);        if(bzerror==BZ_OK) return true;        code=FXStreamNoRead;        }      else{        bzerror=BZ2_bzCompressInit(&bz->stream,BLOCKSIZE100K,VERBOSITY,WORKFACTOR);        if(bzerror==BZ_OK) return true;        code=FXStreamNoWrite;        }      FXFREE(&bz);      }    FXFileStream::close();    }  return false;  }
开发者ID:gfphoenix,项目名称:tsiu,代码行数:26,


示例13: larc_bzip2_decompressor

/** * Create an decompress function. * options: */static int larc_bzip2_decompressor(lua_State *L){	bz_userdata *ud;	ud = (bz_userdata*)lua_newuserdata(L, sizeof(bz_userdata));	luaL_getmetatable(L, BZ2DECOMPRESS_MT);	lua_setmetatable(L, -2);		ud->z.bzalloc = NULL;	ud->z.bzfree = NULL;	ud->z.opaque = NULL;	ud->z.next_in = NULL;	ud->z.avail_in = 0;		ud->status = BZ2_bzDecompressInit(&ud->z, 0, USE_SMALL_DECOMPRESS);	if (ud->status != BZ_OK)	{		lua_pushnil(L);		lua_pushstring(L, bz2_error(ud->status));		lua_pushinteger(L, ud->status);		return 3;	}	lua_pushcclosure(L, decompress_call, 1);	return 1;}
开发者ID:rzel,项目名称:lua-larc,代码行数:30,


示例14: BZ2_bzDecompressInit

JNIEXPORT jbyteArray JNICALL Java_cn_reactnative_modules_update_DownloadTask_bsdiffPatch        (JNIEnv *env, jobject self, jbyteArray origin, jbyteArray patch){    jclass newExcCls;    jbyte* outPtr;    struct bspatch_stream stream;    bz_stream zip;    jbyte* originPtr = (*env)->GetByteArrayElements(env, origin, NULL);    size_t originLength = (*env)->GetArrayLength(env, origin);    jbyte* patchPtr = (*env)->GetByteArrayElements(env, patch, NULL);    size_t patchLength = (*env)->GetArrayLength(env, patch);    jbyteArray ret = NULL;    if (patchLength < 32) {        newExcCls = (*env)->FindClass(env,"java/lang/Error");        if (newExcCls != NULL) /* Unable to find the new exception class, give up. */            (*env)->ThrowNew(env,newExcCls, "Corrupt patch");        (*env)->ReleaseByteArrayElements(env, origin, originPtr, JNI_ABORT);        (*env)->ReleaseByteArrayElements(env, patch, patchPtr, JNI_ABORT);        return NULL;    }    int64_t newsize=offtin((uint8_t*)patchPtr + 16);    if (memcmp(patchPtr, "ENDSLEY/BSDIFF43", 16) != 0 || newsize<0) {        newExcCls = (*env)->FindClass(env, "java/lang/Error");        if (newExcCls != NULL) /* Unable to find the new exception class, give up. */            (*env)->ThrowNew(env, newExcCls, "Corrupt patch");        (*env)->ReleaseByteArrayElements(env, origin, originPtr, JNI_ABORT);        (*env)->ReleaseByteArrayElements(env, patch, patchPtr, JNI_ABORT);        return NULL;    }    ret = (*env)->NewByteArray(env, newsize);    if (ret == NULL) {        return NULL; //  out of memory error thrown    }    outPtr = (*env)->GetByteArrayElements(env, ret, NULL);    zip.bzalloc = NULL;    zip.bzfree = NULL;    zip.opaque = NULL;    BZ2_bzDecompressInit(&zip, 0, 1);    zip.next_in = (char*)patchPtr + 32;    zip.avail_in = patchLength - 32;    stream.read = bz2_read;    stream.opaque = &zip;    if (bspatch((const uint8_t*)originPtr, originLength, (uint8_t*)outPtr, newsize, &stream)) {        newExcCls = (*env)->FindClass(env, "java/lang/Error");        if (newExcCls != NULL) /* Unable to find the new exception class, give up. */            (*env)->ThrowNew(env, newExcCls, "bspatch");    }    BZ2_bzDecompressEnd(&zip);    (*env)->ReleaseByteArrayElements(env, ret, outPtr, 0);    (*env)->ReleaseByteArrayElements(env, origin, originPtr, JNI_ABORT);    (*env)->ReleaseByteArrayElements(env, patch, patchPtr, JNI_ABORT);    return ret;}
开发者ID:reactnativecn,项目名称:react-native-pushy,代码行数:59,


示例15: bz2_decompress_xml

bool bz2_decompress_xml(char *in_data, int in_data_length, BYTE **pDat, int *data_length) {	const int BLOCKSIZE = 1024 * 100;	bz_stream bzs = {0};	switch(BZ2_bzDecompressInit(&bzs, 0, 0)) {	case BZ_CONFIG_ERROR: 		//MessageBox(0, "Configuration Error", "BZ2 Decompres Init", MB_OK | MB_ICONERROR); 		ShowError(TranslateT("BZ2 Decompression, configuration error"));		return false;	case BZ_PARAM_ERROR: 		//MessageBox(0, "Parameters Error", "BZ2 Decompres Init", MB_OK | MB_ICONERROR); 		ShowError(TranslateT("BZ2 Decompression, parameter error"));		return false;	case BZ_MEM_ERROR: 		//MessageBox(0, "Memory Error", "BZ2 Decompres Init", MB_OK | MB_ICONERROR); 		ShowError(TranslateT("DB2 Decompression, memory error"));		return false;	}	bzs.avail_in = in_data_length;	bzs.next_in = in_data;	bzs.avail_out = BLOCKSIZE;	*pDat = (BYTE *)malloc(bzs.avail_out + 1); // allocate 100k (at present, xml data is about 87k)  (1 byte extra for a terminating 0 for safety)	bzs.next_out = (char *)*pDat;	int blocknum = 0;	int ret;	while((ret = BZ2_bzDecompress(&bzs)) == BZ_OK && bzs.avail_in > 0) {		if(bzs.avail_out == 0) {			blocknum++;			*pDat = (BYTE *)realloc(*pDat, (blocknum + 1) * BLOCKSIZE + 1);			bzs.next_out = (char *)(*pDat + (blocknum * BLOCKSIZE));			bzs.avail_out = BLOCKSIZE;		}	}	BZ2_bzDecompressEnd(&bzs);	if(ret != BZ_STREAM_END) {//		char msg[512];//		sprintf(msg, "Error decompressing, code: %d", ret);//		MessageBox(0, msg, "Error Decompressing BZ2 XML data", MB_OK);		free(*pDat);		*pDat = 0;		*data_length = 0;		return false;	}	*data_length = bzs.total_out_lo32;		// assume it's not too massive!	(*pDat)[*data_length] = 0;				// for safety - last char shouldn't matter to us	//char msg[256];	//sprintf(msg, "Bytes decompressed: %d", data_length);	//MessageBox(0, msg, "msg", MB_OK);	return true;}
开发者ID:darkscout,项目名称:sje-miranda-plugins,代码行数:59,


示例16: while

static char *_qdbm_bzdecode_impl(const char *ptr, int size, int *sp) {    bz_stream zs;    char *buf, *swap, obuf[BZIPBUFSIZ];    int rv, asiz, bsiz, osiz;    zs.bzalloc = NULL;    zs.bzfree = NULL;    zs.opaque = NULL;    if(BZ2_bzDecompressInit(&zs, 0, 0) != BZ_OK) return NULL;    asiz = size * 2 + 16;    if(asiz < BZIPBUFSIZ) asiz = BZIPBUFSIZ;    if(!(buf = malloc(asiz))) {        BZ2_bzDecompressEnd(&zs);        return NULL;    }    bsiz = 0;    zs.next_in = (char *)ptr;    zs.avail_in = size;    zs.next_out = obuf;    zs.avail_out = BZIPBUFSIZ;    while((rv = BZ2_bzDecompress(&zs)) == BZ_OK) {        osiz = BZIPBUFSIZ - zs.avail_out;        if(bsiz + osiz >= asiz) {            asiz = asiz * 2 + osiz;            if(!(swap = realloc(buf, asiz))) {                free(buf);                BZ2_bzDecompressEnd(&zs);                return NULL;            }            buf = swap;        }        memcpy(buf + bsiz, obuf, osiz);        bsiz += osiz;        zs.next_out = obuf;        zs.avail_out = BZIPBUFSIZ;    }    if(rv != BZ_STREAM_END) {        free(buf);        BZ2_bzDecompressEnd(&zs);        return NULL;    }    osiz = BZIPBUFSIZ - zs.avail_out;    if(bsiz + osiz >= asiz) {        asiz = asiz * 2 + osiz;        if(!(swap = realloc(buf, asiz))) {            free(buf);            BZ2_bzDecompressEnd(&zs);            return NULL;        }        buf = swap;    }    memcpy(buf + bsiz, obuf, osiz);    bsiz += osiz;    buf[bsiz] = '/0';    if(sp) *sp = bsiz;    BZ2_bzDecompressEnd(&zs);    return buf;}
开发者ID:naveen-raju,项目名称:key_value_stores,代码行数:57,


示例17: Bz2Private

Samurai::IO::BZip2Decompressor::BZip2Decompressor(){	d = new Bz2Private();		if (BZ2_bzDecompressInit(d->stream, 0, 0) != BZ_OK)	{		delete d; d = 0;	}}
开发者ID:janvidar,项目名称:samurai,代码行数:9,


示例18: bzip2_decompress

intbzip2_decompress(void *src, uint64_t srclen, void *dst, uint64_t *dstlen,		 int level, uchar_t chdr, void *data){	bz_stream bzs;	int ret;	unsigned int slen, dlen;	uint64_t _srclen = srclen;	uint64_t _dstlen = *dstlen;	uchar_t *dst1 = dst;	uchar_t *src1 = src;	bzs.bzalloc = slab_alloc_i;	bzs.bzfree = slab_free;	bzs.opaque = NULL;	ret = BZ2_bzDecompressInit(&bzs, 0, 0);	if (ret != BZ_OK) {		bzerr(ret);		return (-1);	}	while (_srclen > 0) {		if (_srclen > SINGLE_CALL_MAX) {			slen = SINGLE_CALL_MAX;		} else {			slen = _srclen;		}		if (_dstlen > SINGLE_CALL_MAX) {			dlen = SINGLE_CALL_MAX;		} else {			dlen = _dstlen;		}		bzs.next_in = src1;		bzs.avail_in = slen;		bzs.next_out = dst1;		bzs.avail_out = dlen;		ret = BZ2_bzDecompress(&bzs);		if (ret != BZ_OK && ret != BZ_STREAM_END) {			BZ2_bzDecompressEnd(&bzs);			bzerr(ret);			return (-1);		}		dst1 += (dlen - bzs.avail_out);		_dstlen -= (dlen - bzs.avail_out);		src1 += (slen - bzs.avail_in);		_srclen -= (slen - bzs.avail_in);	}	/* normal termination */	*dstlen = *dstlen - _dstlen;	BZ2_bzDecompressEnd(&bzs);	return (0);}
开发者ID:alepharchives,项目名称:pcompress,代码行数:56,


示例19: BZ2Decompress

void BZ2Decompress(Stream& out, Stream& in, Gate2<int, int> progress){	enum { BUF_SIZE = 65536 };	Buffer<char> input(BUF_SIZE), output(BUF_SIZE);	int avail = in.Get(input, BUF_SIZE);	if(avail == 0)		return;	bz_stream z;	Zero(z);	z.bzalloc = bzalloc_new;	z.bzfree = bzfree_new;	z.opaque = 0;	if(BZ2_bzDecompressInit(&z, 0, 0) != BZ_OK)	{		out.SetError();		return;	}	z.next_in = input;	z.avail_in = avail;	z.next_out = output;	z.avail_out = BUF_SIZE;	int code;	bool running = true;	int64 total = in.GetLeft();	int done = 0;	do	{		if(z.avail_in == 0 && running)		{			if((z.avail_in = in.Get(z.next_in = input, BUF_SIZE)) == 0)				running = false;			done += z.avail_in;			if(progress(done, (int)total) || in.IsError())			{				BZ2_bzDecompressEnd(&z);				out.SetError();				return;			}		}		code = BZ2_bzDecompress(&z);		if(z.avail_out == 0)		{			out.Put(z.next_out = output, z.avail_out = BUF_SIZE);			if(out.IsError())			{				BZ2_bzDecompressEnd(&z);				return;			}		}	}	while(code == BZ_OK);	if(z.avail_out < BUF_SIZE)		out.Put(output, BUF_SIZE - z.avail_out);	BZ2_bzDecompressEnd(&z);}
开发者ID:dreamsxin,项目名称:ultimatepp,代码行数:55,


示例20: import_uncompress_detect

int import_uncompress_detect(ImportCompress *c, const void *data, size_t size) {        static const uint8_t xz_signature[] = {                0xfd, '7', 'z', 'X', 'Z', 0x00        };        static const uint8_t gzip_signature[] = {                0x1f, 0x8b        };        static const uint8_t bzip2_signature[] = {                'B', 'Z', 'h'        };        int r;        assert(c);        if (c->type != IMPORT_COMPRESS_UNKNOWN)                return 1;        if (size < MAX3(sizeof(xz_signature),                        sizeof(gzip_signature),                        sizeof(bzip2_signature)))                return 0;        assert(data);        if (memcmp(data, xz_signature, sizeof(xz_signature)) == 0) {                lzma_ret xzr;                xzr = lzma_stream_decoder(&c->xz, UINT64_MAX, LZMA_TELL_UNSUPPORTED_CHECK);                if (xzr != LZMA_OK)                        return -EIO;                c->type = IMPORT_COMPRESS_XZ;        } else if (memcmp(data, gzip_signature, sizeof(gzip_signature)) == 0) {                r = inflateInit2(&c->gzip, 15+16);                if (r != Z_OK)                        return -EIO;                c->type = IMPORT_COMPRESS_GZIP;        } else if (memcmp(data, bzip2_signature, sizeof(bzip2_signature)) == 0) {                r = BZ2_bzDecompressInit(&c->bzip2, 0, 0);                if (r != BZ_OK)                        return -EIO;                c->type = IMPORT_COMPRESS_BZIP2;        } else                c->type = IMPORT_COMPRESS_UNCOMPRESSED;        c->encoding = false;        return 1;}
开发者ID:AOSC-Dev,项目名称:systemd,代码行数:54,


示例21: memset

intArchiveReader::ExtractItemToStream(const MarItem *item, FILE *fp){  /* decompress the data chunk by chunk */  bz_stream strm;  int offset, inlen, outlen, ret = OK;  memset(&strm, 0, sizeof(strm));  if (BZ2_bzDecompressInit(&strm, 0, 0) != BZ_OK)    return UNEXPECTED_BZIP_ERROR;  offset = 0;  for (;;) {    if (!item->length) {      ret = UNEXPECTED_MAR_ERROR;      break;    }    if (offset < (int) item->length && strm.avail_in == 0) {      inlen = mar_read(mArchive, item, offset, inbuf, inbuf_size);      if (inlen <= 0)        return READ_ERROR;      offset += inlen;      strm.next_in = inbuf;      strm.avail_in = inlen;    }    strm.next_out = outbuf;    strm.avail_out = outbuf_size;    ret = BZ2_bzDecompress(&strm);    if (ret != BZ_OK && ret != BZ_STREAM_END) {      ret = UNEXPECTED_BZIP_ERROR;      break;    }    outlen = outbuf_size - strm.avail_out;    if (outlen) {      if (fwrite(outbuf, outlen, 1, fp) != 1) {        ret = WRITE_ERROR_EXTRACT;        break;      }    }    if (ret == BZ_STREAM_END) {      ret = OK;      break;    }  }  BZ2_bzDecompressEnd(&strm);  return ret;}
开发者ID:AtulKumar2,项目名称:gecko-dev,代码行数:54,


示例22: camlzip_bzDecompressInit

value camlzip_bzDecompressInit(value verbosity, value small){#ifdef USE_BZIP2  int err;  value vzs = camlzip_new_bzstream();  if ((err = BZ2_bzDecompressInit(BZStream_val(vzs), Int_val(verbosity), Bool_val(small))) != BZ_OK)    camlzip_bzerror("Bzlib.decompress_init", err);  return vzs;#else  failwith("Bzip2 compression not supported");#endif}
开发者ID:ygrek,项目名称:mldonkey,代码行数:12,


示例23: init_uncompress

static voidinit_uncompress( compress_filter_context_t *zfx, bz_stream *bzs ){  int rc;  if((rc=BZ2_bzDecompressInit(bzs,0,opt.bz2_decompress_lowmem))!=BZ_OK)    log_fatal("bz2lib problem: %d/n",rc);  zfx->inbufsize = 2048;  zfx->inbuf = xmalloc( zfx->inbufsize );  bzs->avail_in = 0;}
开发者ID:kholia,项目名称:PGPCrack-NG,代码行数:12,


示例24: BZ_API

/*---------------------------------------------------*/BZFILE* BZ_API(BZ2_bzReadOpen)                    ( int*  bzerror,                      FILE* f,                      int   verbosity,                     int   small,                     void* unused,                     int   nUnused ){   bzFile* bzf = NULL;   int     ret;   BZ_SETERR(BZ_OK);   if (f == NULL ||        (small != 0 && small != 1) ||       (verbosity < 0 || verbosity > 4) ||       (unused == NULL && nUnused != 0) ||       (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED)))      { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };   if (ferror(f))      { BZ_SETERR(BZ_IO_ERROR); return NULL; };   bzf = malloc ( sizeof(bzFile) );   if (bzf == NULL)       { BZ_SETERR(BZ_MEM_ERROR); return NULL; };   BZ_SETERR(BZ_OK);   bzf->initialisedOk = False;   bzf->handle        = f;   bzf->bufN          = 0;   bzf->writing       = False;   bzf->strm.bzalloc  = NULL;   bzf->strm.bzfree   = NULL;   bzf->strm.opaque   = NULL;      while (nUnused > 0) {      bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;      unused = ((void*)( 1 + ((UChar*)(unused))  ));      nUnused--;   }   ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small );   if (ret != BZ_OK)      { BZ_SETERR(ret); free(bzf); return NULL; };   bzf->strm.avail_in = bzf->bufN;   bzf->strm.next_in  = bzf->buf;   bzf->initialisedOk = True;   return bzf;   }
开发者ID:Requaos,项目名称:harvey,代码行数:54,


示例25: Bzip2BufferDecompressor

 Bzip2BufferDecompressor(const char* buffer, size_t size) :     m_buffer(buffer),     m_buffer_size(size),     m_bzstream() {     m_bzstream.next_in = const_cast<char*>(buffer);     m_bzstream.avail_in = static_cast_with_assert<unsigned int>(size);     int result = BZ2_bzDecompressInit(&m_bzstream, 0, 0);     if (result != BZ_OK) {         std::string message("bzip2 error: decompression init failed: ");         throw bzip2_error(message, result);     } }
开发者ID:Project-OSRM,项目名称:osrm-backend,代码行数:12,


示例26: BZ_API

/*---------------------------------------------------*/int BZ_API(BZ2_bzBuffToBuffDecompress)                            ( char*         dest,                              unsigned int* destLen,                             char*         source,                              unsigned int  sourceLen,                             int           small,                             int           verbosity ){   bz_stream strm;   int ret;   if (dest == NULL || destLen == NULL ||        source == NULL ||       (small != 0 && small != 1) ||       verbosity < 0 || verbosity > 4)           return BZ_PARAM_ERROR;   strm.bzalloc = NULL;   strm.bzfree = NULL;   strm.opaque = NULL;   ret = BZ2_bzDecompressInit ( &strm, verbosity, small );   if (ret != BZ_OK) return ret;   strm.next_in = source;   strm.next_out = dest;   strm.avail_in = sourceLen;   strm.avail_out = *destLen;   ret = BZ2_bzDecompress ( &strm );   if (ret == BZ_OK) goto output_overflow_or_eof;   if (ret != BZ_STREAM_END) goto errhandler;   /* normal termination */   *destLen -= strm.avail_out;   BZ2_bzDecompressEnd ( &strm );   return BZ_OK;   output_overflow_or_eof:   if (strm.avail_out > 0) {      BZ2_bzDecompressEnd ( &strm );      return BZ_UNEXPECTED_EOF;   } else {      BZ2_bzDecompressEnd ( &strm );      return BZ_OUTBUFF_FULL;   };         errhandler:   BZ2_bzDecompressEnd ( &strm );   return ret; }
开发者ID:00001,项目名称:plan9port,代码行数:51,


示例27: calloc

static struct bz2_mem *bz2_mem_open(const char *buffer, size_t size){	struct bz2_mem *b = calloc(sizeof(struct bz2_mem), 1);	b->stream = calloc(sizeof(bz_stream), 1);	// next_in should point at the compressed data	b->stream->next_in = (char *) buffer;	// and avail_in should indicate how many bytes the library may read	b->stream->avail_in = size;	int bzerror = BZ2_bzDecompressInit(b->stream, 0, 0);	if (bzerror != BZ_OK) {		oscap_seterr(OSCAP_EFAMILY_OSCAP, "Could not build bz_stream from memory buffer: BZ2_bzDecompressInit returns %d", bzerror);		bz2_mem_free(b);		return NULL;	}	return b;}
开发者ID:AxelNennker,项目名称:openscap,代码行数:16,


示例28: buf

torch::Data Bz2::Decompress(const torch::Data &data){    const int size100k = 100000;    int bufsize = size100k * Bz2::block100k;    int status = 0;        bz_stream stream = {0};        Data buf(bufsize);    Data dst;    dst.HiddenAlloc(data.GetSize() * 2);        /* next_in should point at the data to be compressed     * avail_in should indicate how many bytes the library may read     * BZ2_bzDecompress updates next_in, avail_in and total_in to reflect the number of bytes it has read */    stream.next_in = (char*) data.GetBytes();    stream.avail_in = (int)data.GetSize();        /* next_out should point to a buffer in which the compressed data is to be placed     * avail_out indicating how much output space is available.     * BZ2_bzDecompress updates next_out, avail_out and total_out to reflect the number of bytes output. */    stream.next_out = (char*)buf.GetBytes();    stream.avail_out = (int)buf.GetSize();            status = BZ2_bzDecompressInit(&stream, 0, 0);    if (status != BZ_OK) {        BZ2_bzDecompressEnd(&stream);        return dst;    }        do {        status = BZ2_bzDecompress(&stream);        if (status != BZ_OK && status != BZ_STREAM_END)            break;                dst.Append(buf.GetBytes(), bufsize - stream.avail_out);                stream.next_out = (char*)buf.GetBytes();        stream.avail_out = (int)buf.GetSize();            }while (status != BZ_STREAM_END);        BZ2_bzDecompressEnd(&stream);        return dst;}
开发者ID:yunGit,项目名称:Torch,代码行数:47,


示例29: memset

BZip2StreamReader::BZip2StreamReader(void const* base, size_t length){	if(!base) throw std::invalid_argument("base");	if(length == 0) throw std::invalid_argument("length");#ifdef _WIN64	if(length > UINT32_MAX) throw std::invalid_argument("length");#endif	// Initialize the bzlib stream structure	memset(&m_stream, 0, sizeof(bz_stream));	m_stream.avail_in = static_cast<unsigned int>(length);	m_stream.next_in  = reinterpret_cast<char*>(const_cast<void*>(base));	int result = BZ2_bzDecompressInit(&m_stream, 0, 0);	if(result != BZ_OK) throw std::exception("bzip2: decompression stream could not be initialized");}
开发者ID:djp952,项目名称:vm-linux,代码行数:17,



注:本文中的BZ2_bzDecompressInit函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ BZERO函数代码示例
C++ BZ2_bzDecompressEnd函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。