<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_register_progress_callback_with_state.mdoc -- provide updates during zip_close
   Copyright (C) 2017-2021 Dieter Baron and Thomas Klausner
  
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <libzip@nih.at>
  
   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in
      the documentation and/or other materials provided with the
      distribution.
   3. The names of the authors may not be used to endorse or promote
      products derived from this software without specific prior
      written permission.
  
   THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
   OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
   DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
   IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   -->
<head>
  <meta charset="utf-8"/>
  <link rel="stylesheet" href="../nih-man.css" type="text/css" media="all"/>
  <title>ZIP_REGISTER_PROGRESS_CALLBACK_WITH_STATE(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_REGISTER_PROGRESS_CALLBACK_WITH_STATE(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_REGISTER_PROGRESS_CALLBACK_WITH_STATE(3)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<code class="Nm">zip_register_progress_callback_with_state</code> &#x2014;
<div class="Nd">provide updates during zip_close</div>
</section>
<section class="Sh">
<h1 class="Sh" id="LIBRARY"><a class="permalink" href="#LIBRARY">LIBRARY</a></h1>
libzip (-lzip)
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<code class="In">#include &lt;<a class="In">zip.h</a>&gt;</code>
<p class="Pp"><var class="Vt">typedef void (*zip_progress_callback)(zip_t *,
    double, void *);</var></p>
<p class="Pp"><var class="Ft">void</var>
  <br/>
  <code class="Fn">zip_register_progress_callback_with_state</code>(<var class="Fa" style="white-space: nowrap;">zip_t
    *archive</var>, <var class="Fa" style="white-space: nowrap;">double
    precision</var>,
    <var class="Fa" style="white-space: nowrap;">zip_progress_callback
    callback</var>, <var class="Fa" style="white-space: nowrap;">void
    (*ud_free)(void *)</var>, <var class="Fa" style="white-space: nowrap;">void
    *ud</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The <code class="Fn">zip_register_progress_callback_with_state</code>() function
  registers a callback function <var class="Ar">callback</var> for the zip
  archive <var class="Ar">archive</var>. The <var class="Ar">precision</var>
  argument is a double in the range from 0.00 to 1.0 that defines the smallest
  change for which the callback should be called (to avoid too frequent calls).
  The <var class="Ar">ud_free</var> function is called during cleanup for
  deleting the userdata supplied in <var class="Ar">ud</var>.
<p class="Pp">The callback function is called during
    <a class="Xr" href="zip_close.html">zip_close(3)</a> in regular intervals
    (after every zip archive entry that's completely written to disk, and while
    writing data for entries) with zip archive <var class="Ar">archive</var>,
    the current progression state as a <var class="Vt">double</var>, and the
    user-provided user-data <var class="Ar">ud</var> as arguments. The
    progression state is a <var class="Vt">double</var> in the range from 0.0 to
    1.0. This can be used to provide progress indicators for user
  interfaces.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<a class="Xr" href="libzip.html">libzip(3)</a>,
  <a class="Xr" href="zip_close.html">zip_close(3)</a>,
  <a class="Xr" href="zip_register_cancel_callback_with_state.html">zip_register_cancel_callback_with_state(3)</a>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn">zip_register_progress_callback_with_state</code>() was added in
  libzip 1.3.0.
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<span class="An">Dieter Baron</span>
  &lt;<a class="Mt" href="mailto:dillo@nih.at">dillo@nih.at</a>&gt; and
  <span class="An">Thomas Klausner</span>
  &lt;<a class="Mt" href="mailto:tk@giga.or.at">tk@giga.or.at</a>&gt;
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">December 18, 2017</td>
    <td class="foot-os">NiH</td>
  </tr>
</table>
</body>
</html>
