Move emulator-base native code into its own non-Gradle directory.
[SquirrelJME.git] / emulators / emulator-base-native / c / mle_nativearchive.c
blob9107c71880747420bdc12cc35bde3048d376da6c
1 /* -*- Mode: C++; indent-tabs-mode: t; tab-width: 4 -*-
2 // ---------------------------------------------------------------------------
3 // Multi-Phasic Applications: SquirrelJME
4 // Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
5 // ---------------------------------------------------------------------------
6 // SquirrelJME is under the Mozilla Public License Version 2.0.
7 // See license.mkd for licensing and copyright information.
8 // ------------------------------------------------------------------------ */
10 #include "squirreljme.h"
12 #define NAME_ARCHIVE "cc/squirreljme/jvm/mle/brackets/NativeArchiveBracket"
13 #define NAME_ENTRY "cc/squirreljme/jvm/mle/brackets/NativeArchiveEntryBracket"
15 #define FORWARD_CLASS "cc/squirreljme/jvm/mle/NativeArchiveShelf"
16 #define FORWARD_NATIVE_CLASS "cc/squirreljme/emulator/EmulatedNativeArchiveShelf"
18 #define FORWARD_DESC_archiveClose "(" \
19 DESC_CLASS(NAME_ARCHIVE) \
20 ")" DESC_VOID
21 #define FORWARD_DESC_archiveEntry "(" \
22 DESC_CLASS(NAME_ARCHIVE) \
23 DESC_STRING \
24 ")" DESC_CLASS(NAME_ENTRY)
25 #define FORWARD_DESC_archiveOpenZip "(" \
26 DESC_ARRAY(DESC_BYTE) \
27 DESC_INT \
28 DESC_INT \
29 ")" DESC_CLASS(NAME_ARCHIVE)
30 #define FORWARD_DESC_entryIsDirectory "(" \
31 DESC_CLASS(NAME_ENTRY) \
32 ")" DESC_BOOLEAN
33 #define FORWARD_DESC_entryOpen "(" \
34 DESC_CLASS(NAME_ENTRY) \
35 ")" DESC_CLASS("java/io/InputStream")
36 #define FORWARD_DESC_entryUncompressedSize "(" \
37 DESC_CLASS(NAME_ENTRY) \
38 ")" DESC_LONG
40 FORWARD_IMPL_VOID(NativeArchive, archiveClose, \
41 FORWARD_IMPL_args(jobject archive), \
42 FORWARD_IMPL_pass(archive))
43 FORWARD_IMPL(NativeArchive, archiveEntry, jobject, Object, \
44 FORWARD_IMPL_args(jobject archive, jobject name), \
45 FORWARD_IMPL_pass(archive, name))
46 FORWARD_IMPL(NativeArchive, archiveOpenZip, jobject, Object, \
47 FORWARD_IMPL_args(jobject buf, jint off, jint len), \
48 FORWARD_IMPL_pass(buf, off, len))
49 FORWARD_IMPL(NativeArchive, entryIsDirectory, jboolean, Boolean, \
50 FORWARD_IMPL_args(jobject entry), \
51 FORWARD_IMPL_pass(entry))
52 FORWARD_IMPL(NativeArchive, entryOpen, jobject, Object, \
53 FORWARD_IMPL_args(jobject entry), \
54 FORWARD_IMPL_pass(entry))
55 FORWARD_IMPL(NativeArchive, entryUncompressedSize, jlong, Long, \
56 FORWARD_IMPL_args(jobject entry), \
57 FORWARD_IMPL_pass(entry))
59 static const JNINativeMethod mleNativeArchiveMethods[] =
61 FORWARD_list(NativeArchive, archiveClose),
62 FORWARD_list(NativeArchive, archiveEntry),
63 FORWARD_list(NativeArchive, archiveOpenZip),
64 FORWARD_list(NativeArchive, entryIsDirectory),
65 FORWARD_list(NativeArchive, entryOpen),
66 FORWARD_list(NativeArchive, entryUncompressedSize)
69 FORWARD_init(mleNativeArchiveInit, mleNativeArchiveMethods)