Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  compress.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef PERF_COMPRESS_H
#define PERF_COMPRESS_H

#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <linux/compiler.h>
#ifdef HAVE_ZSTD_SUPPORT
#include <zstd.h>
#endif

#ifdef HAVE_ZLIB_SUPPORT
int gzip_decompress_to_file(const char *input, int output_fd);
bool gzip_is_compressed(const char *input);
#endif

#ifdef HAVE_LZMA_SUPPORT
int lzma_decompress_stream_to_file(FILE *input, int output_fd);
int lzma_decompress_to_file(const char *input, int output_fd);
bool lzma_is_compressed(const char *input);
#else
static inline
int lzma_decompress_stream_to_file(FILE *input __maybe_unused,
       int output_fd __maybe_unused)
{
 return -1;
}
static inline
int lzma_decompress_to_file(const char *input __maybe_unused,
       int output_fd __maybe_unused)
{
 return -1;
}
static inline int lzma_is_compressed(const char *input __maybe_unused)
{
 return false;
}
#endif

struct zstd_data {
#ifdef HAVE_ZSTD_SUPPORT
 ZSTD_CStream *cstream;
 ZSTD_DStream *dstream;
 int comp_level;
#endif
};

#ifdef HAVE_ZSTD_SUPPORT

int zstd_init(struct zstd_data *data, int level);
int zstd_fini(struct zstd_data *data);

ssize_t zstd_compress_stream_to_records(struct zstd_data *data, void *dst, size_t dst_size,
           void *src, size_t src_size, size_t max_record_size,
           size_t process_header(void *record, size_t increment));

size_t zstd_decompress_stream(struct zstd_data *data, void *src, size_t src_size,
         void *dst, size_t dst_size);
#else /* !HAVE_ZSTD_SUPPORT */

static inline int zstd_init(struct zstd_data *data __maybe_unused, int level __maybe_unused)
{
 return 0;
}

static inline int zstd_fini(struct zstd_data *data __maybe_unused)
{
 return 0;
}

static inline
ssize_t zstd_compress_stream_to_records(struct zstd_data *data __maybe_unused,
           void *dst __maybe_unused, size_t dst_size __maybe_unused,
           void *src __maybe_unused, size_t src_size __maybe_unused,
           size_t max_record_size __maybe_unused,
           size_t process_header(void *record, size_t increment) __maybe_unused)
{
 return 0;
}

static inline size_t zstd_decompress_stream(struct zstd_data *data __maybe_unused, void *src __maybe_unused,
         size_t src_size __maybe_unused, void *dst __maybe_unused,
         size_t dst_size __maybe_unused)
{
 return 0;
}
#endif

#endif /* PERF_COMPRESS_H */

Messung V0.5
C=96 H=97 G=96

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge