Artifact
87abbb588a4070ce2e85e49f877915feb7d6795e :
File
jni/tcl/generic/zipfs.h
— part of check-in
[2422ee3f48]
at
2019-09-23 04:43:33
on branch trunk
— more improvements in zipfs: mount from bytearray or open channel, doc update
(user:
chw
size: 1626)
[more...]
0000: 2f 2a 0a 20 2a 20 7a 69 70 66 73 2e 68 20 2d 2d /*. * zipfs.h --
0010: 0a 20 2a 0a 20 2a 09 54 68 69 73 20 68 65 61 64 . *. *.This head
0020: 65 72 20 66 69 6c 65 20 64 65 73 63 72 69 62 65 er file describe
0030: 73 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 s the interface
0040: 6f 66 20 74 68 65 20 5a 49 50 46 53 20 66 69 6c of the ZIPFS fil
0050: 65 73 79 73 74 65 6d 0a 20 2a 09 75 73 65 64 20 esystem. *.used
0060: 69 6e 20 41 6e 64 72 6f 57 69 73 68 2e 0a 20 2a in AndroWish.. *
0070: 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 . * Copyright (c
0080: 29 20 32 30 31 33 2d 32 30 31 39 20 43 68 72 69 ) 2013-2019 Chri
0090: 73 74 69 61 6e 20 57 65 72 6e 65 72 20 3c 63 68 stian Werner <ch
00a0: 77 40 63 68 2d 77 65 72 6e 65 72 2e 64 65 3e 0a w@ch-werner.de>.
00b0: 20 2a 0a 20 2a 20 53 65 65 20 74 68 65 20 66 69 *. * See the fi
00c0: 6c 65 20 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d le "license.term
00d0: 73 22 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 s" for informati
00e0: 6f 6e 20 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 on on usage and
00f0: 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f redistribution o
0100: 66 0a 20 2a 20 74 68 69 73 20 66 69 6c 65 2c 20 f. * this file,
0110: 61 6e 64 20 66 6f 72 20 61 20 44 49 53 43 4c 41 and for a DISCLA
0120: 49 4d 45 52 20 4f 46 20 41 4c 4c 20 57 41 52 52 IMER OF ALL WARR
0130: 41 4e 54 49 45 53 2e 0a 20 2a 2f 0a 0a 23 69 66 ANTIES.. */..#if
0140: 6e 64 65 66 20 5f 5a 49 50 46 53 5f 48 0a 23 64 ndef _ZIPFS_H.#d
0150: 65 66 69 6e 65 20 5f 5a 49 50 46 53 5f 48 0a 0a efine _ZIPFS_H..
0160: 23 69 6e 63 6c 75 64 65 20 22 74 63 6c 2e 68 22 #include "tcl.h"
0170: 0a 0a 23 69 66 64 65 66 20 5f 5f 63 70 6c 75 73 ..#ifdef __cplus
0180: 70 6c 75 73 0a 65 78 74 65 72 6e 20 22 43 22 20 plus.extern "C"
0190: 7b 0a 23 65 6e 64 69 66 0a 0a 23 69 66 6e 64 65 {.#endif..#ifnde
01a0: 66 20 5a 49 50 46 53 41 50 49 0a 23 20 20 20 64 f ZIPFSAPI.# d
01b0: 65 66 69 6e 65 20 5a 49 50 46 53 41 50 49 20 65 efine ZIPFSAPI e
01c0: 78 74 65 72 6e 0a 23 65 6e 64 69 66 0a 0a 23 69 xtern.#endif..#i
01d0: 66 64 65 66 20 5a 49 50 46 53 5f 49 4e 5f 54 4b fdef ZIPFS_IN_TK
01e0: 0a 23 64 65 66 69 6e 65 20 5a 69 70 66 73 5f 4d .#define Zipfs_M
01f0: 6f 75 6e 74 20 20 20 20 20 20 20 54 6b 7a 69 70 ount Tkzip
0200: 66 73 5f 4d 6f 75 6e 74 0a 23 64 65 66 69 6e 65 fs_Mount.#define
0210: 20 5a 69 70 66 73 5f 4d 6f 75 6e 74 42 75 66 66 Zipfs_MountBuff
0220: 65 72 20 54 6b 7a 69 70 66 73 5f 4d 6f 75 6e 74 er Tkzipfs_Mount
0230: 42 75 66 66 65 72 0a 23 64 65 66 69 6e 65 20 5a Buffer.#define Z
0240: 69 70 66 73 5f 55 6e 6d 6f 75 6e 74 20 20 20 20 ipfs_Unmount
0250: 20 54 6b 7a 69 70 66 73 5f 55 6e 6d 6f 75 6e 74 Tkzipfs_Unmount
0260: 0a 23 64 65 66 69 6e 65 20 5a 69 70 66 73 5f 49 .#define Zipfs_I
0270: 6e 69 74 20 20 20 20 20 20 20 20 54 6b 7a 69 70 nit Tkzip
0280: 66 73 5f 49 6e 69 74 0a 23 64 65 66 69 6e 65 20 fs_Init.#define
0290: 5a 69 70 66 73 5f 53 61 66 65 49 6e 69 74 20 20 Zipfs_SafeInit
02a0: 20 20 54 6b 7a 69 70 66 73 5f 53 61 66 65 49 6e Tkzipfs_SafeIn
02b0: 69 74 0a 23 69 66 64 65 66 20 42 55 49 4c 44 5f it.#ifdef BUILD_
02c0: 74 6b 0a 23 20 20 20 75 6e 64 65 66 20 5a 49 50 tk.# undef ZIP
02d0: 46 53 41 50 49 0a 23 20 20 20 64 65 66 69 6e 65 FSAPI.# define
02e0: 20 5a 49 50 46 53 41 50 49 20 44 4c 4c 45 58 50 ZIPFSAPI DLLEXP
02f0: 4f 52 54 0a 23 65 6e 64 69 66 0a 23 65 6e 64 69 ORT.#endif.#endi
0300: 66 0a 0a 23 69 66 64 65 66 20 5a 49 50 46 53 5f f..#ifdef ZIPFS_
0310: 49 4e 5f 54 43 4c 0a 23 64 65 66 69 6e 65 20 5a IN_TCL.#define Z
0320: 69 70 66 73 5f 4d 6f 75 6e 74 20 20 20 20 20 20 ipfs_Mount
0330: 20 54 63 6c 7a 69 70 66 73 5f 4d 6f 75 6e 74 0a Tclzipfs_Mount.
0340: 23 64 65 66 69 6e 65 20 5a 69 70 66 73 5f 4d 6f #define Zipfs_Mo
0350: 75 6e 74 42 75 66 66 65 72 20 54 63 6c 7a 69 70 untBuffer Tclzip
0360: 66 73 5f 4d 6f 75 6e 74 42 75 66 66 65 72 0a 23 fs_MountBuffer.#
0370: 64 65 66 69 6e 65 20 5a 69 70 66 73 5f 55 6e 6d define Zipfs_Unm
0380: 6f 75 6e 74 20 20 20 20 20 54 63 6c 7a 69 70 66 ount Tclzipf
0390: 73 5f 55 6e 6d 6f 75 6e 74 0a 23 64 65 66 69 6e s_Unmount.#defin
03a0: 65 20 5a 69 70 66 73 5f 49 6e 69 74 20 20 20 20 e Zipfs_Init
03b0: 20 20 20 20 54 63 6c 7a 69 70 66 73 5f 49 6e 69 Tclzipfs_Ini
03c0: 74 0a 23 64 65 66 69 6e 65 20 5a 69 70 66 73 5f t.#define Zipfs_
03d0: 53 61 66 65 49 6e 69 74 20 20 20 20 54 63 6c 7a SafeInit Tclz
03e0: 69 70 66 73 5f 53 61 66 65 49 6e 69 74 0a 23 69 ipfs_SafeInit.#i
03f0: 66 64 65 66 20 42 55 49 4c 44 5f 74 63 6c 0a 23 fdef BUILD_tcl.#
0400: 20 20 20 75 6e 64 65 66 20 5a 49 50 46 53 41 50 undef ZIPFSAP
0410: 49 0a 23 20 20 20 64 65 66 69 6e 65 20 5a 49 50 I.# define ZIP
0420: 46 53 41 50 49 20 44 4c 4c 45 58 50 4f 52 54 0a FSAPI DLLEXPORT.
0430: 23 65 6e 64 69 66 0a 23 65 6e 64 69 66 0a 0a 5a #endif.#endif..Z
0440: 49 50 46 53 41 50 49 20 69 6e 74 20 5a 69 70 66 IPFSAPI int Zipf
0450: 73 5f 4d 6f 75 6e 74 28 54 63 6c 5f 49 6e 74 65 s_Mount(Tcl_Inte
0460: 72 70 20 2a 69 6e 74 65 72 70 2c 20 63 6f 6e 73 rp *interp, cons
0470: 74 20 63 68 61 72 20 2a 7a 69 70 6e 61 6d 65 2c t char *zipname,
0480: 0a 09 09 09 20 63 6f 6e 73 74 20 63 68 61 72 20 .... const char
0490: 2a 6d 6e 74 70 74 2c 20 63 6f 6e 73 74 20 63 68 *mntpt, const ch
04a0: 61 72 20 2a 70 61 73 73 77 64 29 3b 0a 5a 49 50 ar *passwd);.ZIP
04b0: 46 53 41 50 49 20 69 6e 74 20 5a 69 70 66 73 5f FSAPI int Zipfs_
04c0: 4d 6f 75 6e 74 42 75 66 66 65 72 28 54 63 6c 5f MountBuffer(Tcl_
04d0: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 2c 20 Interp *interp,
04e0: 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 6e 74 70 const char *mntp
04f0: 74 2c 0a 09 09 09 20 20 20 20 20 20 20 75 6e 73 t,.... uns
0500: 69 67 6e 65 64 20 63 68 61 72 20 2a 64 61 74 61 igned char *data
0510: 2c 20 73 69 7a 65 5f 74 20 6c 65 6e 67 74 68 2c , size_t length,
0520: 20 69 6e 74 20 63 6f 70 79 29 3b 0a 5a 49 50 46 int copy);.ZIPF
0530: 53 41 50 49 20 69 6e 74 20 5a 69 70 66 73 5f 55 SAPI int Zipfs_U
0540: 6e 6d 6f 75 6e 74 28 54 63 6c 5f 49 6e 74 65 72 nmount(Tcl_Inter
0550: 70 20 2a 69 6e 74 65 72 70 2c 20 63 6f 6e 73 74 p *interp, const
0560: 20 63 68 61 72 20 2a 7a 69 70 6e 61 6d 65 29 3b char *zipname);
0570: 0a 5a 49 50 46 53 41 50 49 20 69 6e 74 20 5a 69 .ZIPFSAPI int Zi
0580: 70 66 73 5f 49 6e 69 74 28 54 63 6c 5f 49 6e 74 pfs_Init(Tcl_Int
0590: 65 72 70 20 2a 69 6e 74 65 72 70 29 3b 0a 5a 49 erp *interp);.ZI
05a0: 50 46 53 41 50 49 20 69 6e 74 20 5a 69 70 66 73 PFSAPI int Zipfs
05b0: 5f 53 61 66 65 49 6e 69 74 28 54 63 6c 5f 49 6e _SafeInit(Tcl_In
05c0: 74 65 72 70 20 2a 69 6e 74 65 72 70 29 3b 0a 0a terp *interp);..
05d0: 23 69 66 64 65 66 20 5f 5f 63 70 6c 75 73 70 6c #ifdef __cpluspl
05e0: 75 73 0a 7d 0a 23 65 6e 64 69 66 0a 0a 23 65 6e us.}.#endif..#en
05f0: 64 69 66 20 2f 2a 20 5f 5a 49 50 46 53 5f 48 20 dif /* _ZIPFS_H
0600: 2a 2f 0a 0a 2f 2a 0a 20 2a 20 4c 6f 63 61 6c 20 */../*. * Local
0610: 56 61 72 69 61 62 6c 65 73 3a 0a 20 2a 20 6d 6f Variables:. * mo
0620: 64 65 3a 20 63 0a 20 2a 20 63 2d 62 61 73 69 63 de: c. * c-basic
0630: 2d 6f 66 66 73 65 74 3a 20 34 0a 20 2a 20 66 69 -offset: 4. * fi
0640: 6c 6c 2d 63 6f 6c 75 6d 6e 3a 20 37 38 0a 20 2a ll-column: 78. *
0650: 20 45 6e 64 3a 0a 20 2a 2f 0a End:. */.