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) \
21 #define FORWARD_DESC_archiveEntry "(" \
22 DESC_CLASS(NAME_ARCHIVE) \
24 ")" DESC_CLASS(NAME_ENTRY)
25 #define FORWARD_DESC_archiveOpenZip "(" \
26 DESC_ARRAY(DESC_BYTE) \
29 ")" DESC_CLASS(NAME_ARCHIVE)
30 #define FORWARD_DESC_entryIsDirectory "(" \
31 DESC_CLASS(NAME_ENTRY) \
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) \
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
)