Jar files

Jar files — Operations on jar files.

Synopsis


#include <jclass/jar.h>


JarFile*            jclass_jar_open                     (const char *filename);
void                jclass_jar_close                    (JarFile *jar);
void                jclass_jar_rewind                   (JarFile *jar);
const JarEntry*     jclass_jar_get_next_entry           (JarFile *jar);
const JarEntry*     jclass_jar_get_entry                (JarFile *jar,
                                                         const char *name);
char*               jclass_jar_entry_read               (JarFile *jar,
                                                         const JarEntry *entry);
const char*         jclass_jar_entry_get_name           (const JarEntry *entry);
uint32_t            jclass_jar_entry_get_size           (const JarEntry *entry);
Manifest*           jclass_jar_get_manifest             (JarFile *jar);

Description

A jar file is an archive in zip format containing classes and resources for java applications and libraries.

Details

jclass_jar_open ()

JarFile*            jclass_jar_open                     (const char *filename);

Opens a jar stream for reading.

filename :

The filename for the jar file.

Returns :

A newly allocated jar stream on success, or NULL if any error occured.

jclass_jar_close ()

void                jclass_jar_close                    (JarFile *jar);

Closes a jar stream and frees the memory allocated for it.

jar :

The jar stream to close.

jclass_jar_rewind ()

void                jclass_jar_rewind                   (JarFile *jar);

Rewinds a jar file (i.e. goes to the first file).

jar :

The jar file to rewind.

jclass_jar_get_next_entry ()

const JarEntry*     jclass_jar_get_next_entry           (JarFile *jar);

Reads the current entry from a jar stream and advances the current entry "pointer".

jar :

opened jar.

Returns :

A pointer to the entry on success, or NULL if any errors occured while reading the entry.

jclass_jar_get_entry ()

const JarEntry*     jclass_jar_get_entry                (JarFile *jar,
                                                         const char *name);

Gives the JarEntry with the given name.

jar :

The jar file to get the entry from.

name :

The name of the entry. Path seperator is always '/'.

Returns :

A JarEntry you should not modify.

jclass_jar_entry_read ()

char*               jclass_jar_entry_read               (JarFile *jar,
                                                         const JarEntry *entry);

Loads the contents of a zip entry into a char buffer.

jar :

The jar file containing the entry.

entry :

The entry to read data from.

Returns :

A char buffer alloced with malloc on success, NULL otherwise.

jclass_jar_entry_get_name ()

const char*         jclass_jar_entry_get_name           (const JarEntry *entry);

Gives the name of the given JarEntry.

entry :

The entry to get its name.

Returns :

A string you should not modify.

jclass_jar_entry_get_size ()

uint32_t            jclass_jar_entry_get_size           (const JarEntry *entry);

Gives the size of the given JarEntry.

entry :

The entry to get its size.

Returns :

The size of the entry as an unsigned 32-bit integer.

jclass_jar_get_manifest ()

Manifest*           jclass_jar_get_manifest             (JarFile *jar);

Gets the manifest for the given jar.

jar :

The jar file to get its manifest.

Returns :

A Manifest struct or NULL if something went wrong.