]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/zipstrm.tex
Document filter streams take owner ship when created with a pointer,
[wxWidgets.git] / docs / latex / wx / zipstrm.tex
1 %
2 % automatically generated by HelpGen $Revision$ from
3 % wx/zipstrm.h at 16/Sep/04 12:19:29
4 %
5
6 \section{\class{wxZipClassFactory}}\label{wxzipclassfactory}
7
8 Class factory for the zip archive format. See the base class
9 for details.
10
11 \wxheading{Derived from}
12
13 \helpref{wxArchiveClassFactory}{wxarchiveclassfactory}
14
15 \wxheading{Include files}
16
17 <wx/zipstrm.h>
18
19 \wxheading{See also}
20
21 \helpref{Archive formats such as zip}{wxarc}\\
22 \helpref{Generic archive programming}{wxarcgeneric}
23 \helpref{wxZipEntry}{wxzipentry}\\
24 \helpref{wxZipInputStream}{wxzipinputstream}\\
25 \helpref{wxZipOutputStream}{wxzipoutputstream}
26
27
28 %
29 % automatically generated by HelpGen $Revision$ from
30 % wx/zipstrm.h at 16/Sep/04 12:19:29
31 %
32
33 \section{\class{wxZipEntry}}\label{wxzipentry}
34
35 Holds the meta-data for an entry in a zip.
36
37 \wxheading{Derived from}
38
39 \helpref{wxArchiveEntry}{wxarchiveentry}
40
41 \wxheading{Include files}
42
43 <wx/zipstrm.h>
44
45 \wxheading{Data structures}
46
47 Constants for \helpref{Get/SetMethod}{wxzipentrymethod}:
48
49 \begin{verbatim}
50 // Compression Method, only 0 (store) and 8 (deflate) are supported here
51 //
52 enum wxZipMethod
53 {
54 wxZIP_METHOD_STORE,
55 wxZIP_METHOD_SHRINK,
56 wxZIP_METHOD_REDUCE1,
57 wxZIP_METHOD_REDUCE2,
58 wxZIP_METHOD_REDUCE3,
59 wxZIP_METHOD_REDUCE4,
60 wxZIP_METHOD_IMPLODE,
61 wxZIP_METHOD_TOKENIZE,
62 wxZIP_METHOD_DEFLATE,
63 wxZIP_METHOD_DEFLATE64,
64 wxZIP_METHOD_BZIP2 = 12,
65 wxZIP_METHOD_DEFAULT = 0xffff
66 };
67
68 \end{verbatim}
69
70 Constants for \helpref{Get/SetSystemMadeBy}{wxzipentrysystemmadeby}:
71
72 \begin{verbatim}
73 // Originating File-System.
74 //
75 // These are Pkware's values. Note that Info-zip disagree on some of them,
76 // most notably NTFS.
77 //
78 enum wxZipSystem
79 {
80 wxZIP_SYSTEM_MSDOS,
81 wxZIP_SYSTEM_AMIGA,
82 wxZIP_SYSTEM_OPENVMS,
83 wxZIP_SYSTEM_UNIX,
84 wxZIP_SYSTEM_VM_CMS,
85 wxZIP_SYSTEM_ATARI_ST,
86 wxZIP_SYSTEM_OS2_HPFS,
87 wxZIP_SYSTEM_MACINTOSH,
88 wxZIP_SYSTEM_Z_SYSTEM,
89 wxZIP_SYSTEM_CPM,
90 wxZIP_SYSTEM_WINDOWS_NTFS,
91 wxZIP_SYSTEM_MVS,
92 wxZIP_SYSTEM_VSE,
93 wxZIP_SYSTEM_ACORN_RISC,
94 wxZIP_SYSTEM_VFAT,
95 wxZIP_SYSTEM_ALTERNATE_MVS,
96 wxZIP_SYSTEM_BEOS,
97 wxZIP_SYSTEM_TANDEM,
98 wxZIP_SYSTEM_OS_400
99 };
100
101 \end{verbatim}
102
103 Constants for \helpref{Get/SetExternalAttributes}{wxzipentryexternalattributes}:
104
105 \begin{verbatim}
106 // Dos/Win file attributes
107 //
108 enum wxZipAttributes
109 {
110 wxZIP_A_RDONLY = 0x01,
111 wxZIP_A_HIDDEN = 0x02,
112 wxZIP_A_SYSTEM = 0x04,
113 wxZIP_A_SUBDIR = 0x10,
114 wxZIP_A_ARCH = 0x20,
115
116 wxZIP_A_MASK = 0x37
117 };
118
119 \end{verbatim}
120
121 Constants for \helpref{Get/SetFlags}{wxzipentrygetflags}:
122
123 \begin{verbatim}
124 // Values for the flags field in the zip headers
125 //
126 enum wxZipFlags
127 {
128 wxZIP_ENCRYPTED = 0x0001,
129 wxZIP_DEFLATE_NORMAL = 0x0000, // normal compression
130 wxZIP_DEFLATE_EXTRA = 0x0002, // extra compression
131 wxZIP_DEFLATE_FAST = 0x0004, // fast compression
132 wxZIP_DEFLATE_SUPERFAST = 0x0006, // superfast compression
133 wxZIP_DEFLATE_MASK = 0x0006,
134 wxZIP_SUMS_FOLLOW = 0x0008, // crc and sizes come after the data
135 wxZIP_ENHANCED = 0x0010,
136 wxZIP_PATCH = 0x0020,
137 wxZIP_STRONG_ENC = 0x0040,
138 wxZIP_UNUSED = 0x0F80,
139 wxZIP_RESERVED = 0xF000
140 };
141
142 \end{verbatim}
143
144 \wxheading{See also}
145
146 \helpref{Archive formats such as zip}{wxarc}\\
147 \helpref{wxZipInputStream}{wxzipinputstream}\\
148 \helpref{wxZipOutputStream}{wxzipoutputstream}\\
149 \helpref{wxZipNotifier}{wxzipnotifier}
150
151 \wxheading{Field availability}
152
153 When reading a zip from a stream that is seekable,
154 \helpref{GetNextEntry()}{wxzipinputstreamgetnextentry} returns
155 a fully populated wxZipEntry object except for
156 \helpref{wxZipEntry::GetLocalExtra()}{wxzipentrylocalextra}. GetLocalExtra()
157 becomes available when the entry is opened, either by calling
158 \helpref{wxZipInputStream::OpenEntry}{wxzipinputstreamopenentry} or by
159 making an attempt to read the entry's data.
160
161 For zips on \helpref{non-seekable}{wxarcnoseek} streams, the following
162 fields are always available when GetNextEntry() returns:
163
164 \helpref{GetDateTime}{wxarchiveentrydatetime}\\
165 \helpref{GetInternalFormat}{wxarchiveentrygetinternalformat}\\
166 \helpref{GetInternalName}{wxzipentrygetinternalname}\\
167 \helpref{GetFlags}{wxzipentrygetflags}\\
168 \helpref{GetLocalExtra}{wxzipentrylocalextra}\\
169 \helpref{GetMethod}{wxzipentrymethod}\\
170 \helpref{GetName}{wxarchiveentryname}\\
171 \helpref{GetOffset}{wxarchiveentrygetoffset}\\
172 \helpref{IsDir}{wxarchiveentryisdir}
173
174 The following fields are also usually available when GetNextEntry()
175 returns, however, if the zip was also written to a non-seekable stream
176 the zipper is permitted to store them after the entry's data. In that
177 case they become available when the entry's data has been read to Eof(),
178 or \helpref{CloseEntry()}{wxarchiveinputstreamcloseentry} has been called.
179 {\tt (GetFlags() \& wxZIP\_SUMS\_FOLLOW) != 0} indicates that one or
180 more of these come after the data:
181
182 \helpref{GetCompressedSize}{wxzipentrygetcompressedsize}\\
183 \helpref{GetCrc}{wxzipentrygetcrc}\\
184 \helpref{GetSize}{wxarchiveentrysize}
185
186 The following are stored at the end of the zip, and become available
187 when the end of the zip has been reached, i.e. after GetNextEntry()
188 returns NULL and Eof() is true:
189
190 \helpref{GetComment}{wxzipentrycomment}\\
191 \helpref{GetExternalAttributes}{wxzipentryexternalattributes}\\
192 \helpref{GetExtra}{wxzipentryextra}\\
193 \helpref{GetMode}{wxzipentrymode}\\
194 \helpref{GetSystemMadeBy}{wxzipentrysystemmadeby}\\
195 \helpref{IsReadOnly}{wxarchiveentryisreadonly}\\
196 \helpref{IsMadeByUnix}{wxzipentryismadebyunix}\\
197 \helpref{IsText}{wxzipentryistext}
198
199
200 \latexignore{\rtfignore{\wxheading{Members}}}
201
202
203 \membersection{wxZipEntry::wxZipEntry}\label{wxzipentrywxzipentry}
204
205 \func{}{wxZipEntry}{\param{const wxString\& }{name = wxEmptyString}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}}
206
207 Constructor.
208
209 \func{}{wxZipEntry}{\param{const wxZipEntry\& }{entry}}
210
211 Copy constructor.
212
213
214 \membersection{wxZipEntry::Clone}\label{wxzipentryclone}
215
216 \constfunc{wxZipEntry*}{Clone}{\void}
217
218 Make a copy of this entry.
219
220
221 \membersection{wxZipEntry::Get/SetComment}\label{wxzipentrycomment}
222
223 \constfunc{wxString}{GetComment}{\void}
224
225 \func{void}{SetComment}{\param{const wxString\& }{comment}}
226
227 A short comment for this entry.
228
229
230 \membersection{wxZipEntry::GetCompressedSize}\label{wxzipentrygetcompressedsize}
231
232 \constfunc{off\_t}{GetCompressedSize}{\void}
233
234 The compressed size of this entry in bytes.
235
236
237 \membersection{wxZipEntry::GetCrc}\label{wxzipentrygetcrc}
238
239 \constfunc{wxUint32}{GetCrc}{\void}
240
241 CRC32 for this entry's data.
242
243
244 \membersection{wxZipEntry::Get/SetExternalAttributes}\label{wxzipentryexternalattributes}
245
246 \constfunc{wxUint32}{GetExternalAttributes}{\void}
247
248 \func{void}{SetExternalAttributes}{\param{wxUint32 }{attr}}
249
250 The low 8 bits are always the DOS/Windows file attributes for this entry.
251 The values of these attributes are given in the
252 enumeration {\tt wxZipAttributes}.
253
254 The remaining bits can store platform specific permission bits or
255 attributes, and their meaning depends on the value
256 of \helpref{SetSystemMadeBy()}{wxzipentrysystemmadeby}.
257 If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then the
258 high 16 bits are unix mode bits.
259
260 The following other accessors access these bits:
261
262 \helpref{IsReadOnly/SetIsReadOnly}{wxarchiveentryisreadonly}\\
263 \helpref{IsDir/SetIsDir}{wxarchiveentryisdir}\\
264 \helpref{Get/SetMode}{wxzipentrymode}
265
266
267 \membersection{wxZipEntry::Get/SetExtra}\label{wxzipentryextra}
268
269 \constfunc{const char*}{GetExtra}{\void}
270
271 \constfunc{size\_t}{GetExtraLen}{\void}
272
273 \func{void}{SetExtra}{\param{const char* }{extra}, \param{size\_t }{len}}
274
275 The extra field from the entry's central directory record.
276
277 The extra field is used to store platform or application specific
278 data. See Pkware's document 'appnote.txt' for information on its format.
279
280
281 \membersection{wxZipEntry::GetFlags}\label{wxzipentrygetflags}
282
283 \constfunc{int}{GetFlags}{\void}
284
285 Returns a combination of the bits flags in the enumeration {\tt wxZipFlags}.
286
287
288 \membersection{wxZipEntry::GetInternalName}\label{wxzipentrygetinternalname}
289
290 \constfunc{wxString}{GetInternalName}{\void}
291
292 Returns the entry's filename in the internal format used within the
293 archive. The name can include directory components, i.e. it can be a
294 full path.
295
296 The names of directory entries are returned without any trailing path
297 separator. This gives a canonical name that can be used in comparisons.
298
299 \func{wxString}{GetInternalName}{\param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}, \param{bool* }{pIsDir = NULL}}
300
301 A static member that translates a filename into the internal format used
302 within the archive. If the third parameter is provided, the bool pointed
303 to is set to indicate whether the name looks like a directory name
304 (i.e. has a trailing path separator).
305
306 \wxheading{See also}
307
308 \helpref{Looking up an archive entry by name}{wxarcbyname}
309
310
311 \membersection{wxZipEntry::Get/SetLocalExtra}\label{wxzipentrylocalextra}
312
313 \constfunc{const char*}{GetLocalExtra}{\void}
314
315 \constfunc{size\_t}{GetLocalExtraLen}{\void}
316
317 \func{void}{SetLocalExtra}{\param{const char* }{extra}, \param{size\_t }{len}}
318
319 The extra field from the entry's local record.
320
321 The extra field is used to store platform or application specific
322 data. See Pkware's document 'appnote.txt' for information on its format.
323
324
325 \membersection{wxZipEntry::Get/SetMethod}\label{wxzipentrymethod}
326
327 \constfunc{int}{GetMethod}{\void}
328
329 \func{void}{SetMethod}{\param{int }{method}}
330
331 The compression method. The enumeration {\tt wxZipMethod} lists the
332 possible values.
333
334 The default constructor sets this to wxZIP\_METHOD\_DEFAULT,
335 which allows \helpref{wxZipOutputStream}{wxzipoutputstream} to
336 choose the method when writing the entry.
337
338
339 \membersection{wxZipEntry::Get/SetMode}\label{wxzipentrymode}
340
341 \constfunc{int}{GetMode}{\void}
342
343 If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then
344 returns the unix permission bits stored in
345 \helpref{GetExternalAttributes()}{wxzipentryexternalattributes}.
346 Otherwise synthesises them from the DOS attributes.
347
348 \func{void}{SetMode}{\param{int }{mode}}
349
350 Sets the DOS attributes
351 in \helpref{GetExternalAttributes()}{wxzipentryexternalattributes}
352 to be consistent with the {\tt mode} given.
353
354 If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then also
355 stores {\tt mode} in GetExternalAttributes().
356
357 Note that the default constructor
358 sets \helpref{GetSystemMadeBy()}{wxzipentrysystemmadeby} to
359 wxZIP\_SYSTEM\_MSDOS by default. So to be able to store unix
360 permissions when creating zips, call SetSystemMadeBy(wxZIP\_SYSTEM\_UNIX).
361
362
363 \membersection{wxZipEntry::SetNotifier}\label{wxzipentrynotifier}
364
365 \func{void}{SetNotifier}{\param{wxZipNotifier\& }{notifier}}
366
367 \func{void}{UnsetNotifier}{\void}
368
369 Sets the \helpref{notifier}{wxzipnotifier} for this entry.
370 Whenever the \helpref{wxZipInputStream}{wxzipinputstream} updates
371 this entry, it will then invoke the associated
372 notifier's \helpref{OnEntryUpdated}{wxzipnotifieronentryupdated}
373 method.
374
375 Setting a notifier is not usually necessary. It is used to handle
376 certain cases when modifying an zip in a pipeline (i.e. between
377 non-seekable streams).
378
379 \wxheading{See also}
380
381 \helpref{Archives on non-seekable streams}{wxarcnoseek}\\
382 \helpref{wxZipNotifier}{wxzipnotifier}
383
384
385 \membersection{wxZipEntry::Get/SetSystemMadeBy}\label{wxzipentrysystemmadeby}
386
387 \constfunc{int}{GetSystemMadeBy}{\void}
388
389 \func{void}{SetSystemMadeBy}{\param{int }{system}}
390
391 The originating file-system. The default constructor sets this to
392 wxZIP\_SYSTEM\_MSDOS. Set it to wxZIP\_SYSTEM\_UNIX in order to be
393 able to store unix permissions using \helpref{SetMode()}{wxzipentrymode}.
394
395
396 \membersection{wxZipEntry::IsMadeByUnix}\label{wxzipentryismadebyunix}
397
398 \constfunc{bool}{IsMadeByUnix}{\void}
399
400 Returns true if \helpref{GetSystemMadeBy()}{wxzipentrysystemmadeby}
401 is a flavour of unix.
402
403
404 \membersection{wxZipEntry::IsText/SetIsText}\label{wxzipentryistext}
405
406 \constfunc{bool}{IsText}{\void}
407
408 \func{void}{SetIsText}{\param{bool }{isText = true}}
409
410 Indicates that this entry's data is text in an 8-bit encoding.
411
412
413 \membersection{wxZipEntry::operator=}\label{wxzipentryoperatorassign}
414
415 \func{wxZipEntry\& operator}{operator=}{\param{const wxZipEntry\& }{entry}}
416
417 Assignment operator.
418
419
420 %
421 % automatically generated by HelpGen $Revision$ from
422 % wx/zipstrm.h at 16/Sep/04 12:19:29
423 %
424
425 \section{\class{wxZipInputStream}}\label{wxzipinputstream}
426
427 Input stream for reading zip files.
428
429 \helpref{GetNextEntry()}{wxzipinputstreamgetnextentry} returns an
430 \helpref{wxZipEntry}{wxzipentry} object containing the meta-data
431 for the next entry in the zip (and gives away ownership). Reading from
432 the wxZipInputStream then returns the entry's data. Eof() becomes true
433 after an attempt has been made to read past the end of the entry's data.
434 When there are no more entries, GetNextEntry() returns NULL and sets Eof().
435
436 Note that in general zip entries are not seekable, and
437 wxZipInputStream::SeekI() always returns wxInvalidOffset.
438
439 \wxheading{Derived from}
440
441 \helpref{wxArchiveInputStream}{wxarchiveinputstream}
442
443 \wxheading{Include files}
444
445 <wx/zipstrm.h>
446
447 \wxheading{Data structures}
448 \begin{verbatim}
449 typedef wxZipEntry entry_type
450 \end{verbatim}
451
452 \wxheading{See also}
453
454 \helpref{Archive formats such as zip}{wxarc}\\
455 \helpref{wxZipEntry}{wxzipentry}\\
456 \helpref{wxZipOutputStream}{wxzipoutputstream}
457
458 \latexignore{\rtfignore{\wxheading{Members}}}
459
460
461 \membersection{wxZipInputStream::wxZipInputStream}\label{wxzipinputstreamwxzipinputstream}
462
463 \func{}{wxZipInputStream}{\param{wxInputStream\& }{stream}, \param{wxMBConv\& }{conv = wxConvLocal}}
464
465 \func{}{wxZipInputStream}{\param{wxInputStream*}{stream}, \param{wxMBConv\& }{conv = wxConvLocal}}
466
467 Constructor. In a Unicode build the second parameter {\tt conv} is
468 used to translate the filename and comment fields into Unicode. It has
469 no effect on the stream's data.
470
471 If the parent stream is passed as a pointer then the new filter stream
472 takes ownership of it. If it is passed by reference then it does not.
473
474 \func{}{wxZipInputStream}{\param{const wxString\& }{archive}, \param{const wxString\& }{file}}
475
476 Compatibility constructor (requires WXWIN\_COMPATIBILITY\_2\_6).
477
478 When this constructor is used, an emulation of seeking is
479 switched on for compatibility with previous versions. Note however,
480 that it is deprecated.
481
482
483 \membersection{wxZipInputStream::CloseEntry}\label{wxzipinputstreamcloseentry}
484
485 \func{bool}{CloseEntry}{\void}
486
487 Closes the current entry. On a non-seekable stream reads to the end of
488 the current entry first.
489
490
491 \membersection{wxZipInputStream::GetComment}\label{wxzipinputstreamgetcomment}
492
493 \func{wxString}{GetComment}{\void}
494
495 Returns the zip comment.
496
497 This is stored at the end of the zip, therefore when reading a zip
498 from a non-seekable stream, it returns the empty string until the
499 end of the zip has been reached, i.e. when GetNextEntry() returns
500 NULL.
501
502
503 \membersection{wxZipInputStream::GetNextEntry}\label{wxzipinputstreamgetnextentry}
504
505 \func{wxZipEntry*}{GetNextEntry}{\void}
506
507 Closes the current entry if one is open, then reads the meta-data for
508 the next entry and returns it in a \helpref{wxZipEntry}{wxzipentry}
509 object, giving away ownership. The stream is then open and can be read.
510
511
512 \membersection{wxZipInputStream::GetTotalEntries}\label{wxzipinputstreamgettotalentries}
513
514 \func{int}{GetTotalEntries}{\void}
515
516 For a zip on a seekable stream returns the total number of entries in
517 the zip. For zips on non-seekable streams returns the number of entries
518 returned so far by \helpref{GetNextEntry()}{wxzipinputstreamgetnextentry}.
519
520
521 \membersection{wxZipInputStream::OpenEntry}\label{wxzipinputstreamopenentry}
522
523 \func{bool}{OpenEntry}{\param{wxZipEntry\& }{entry}}
524
525 Closes the current entry if one is open, then opens the entry specified
526 by the {\it entry} object.
527
528 {\it entry} should be from the same zip file, and the zip should
529 be on a seekable stream.
530
531 \wxheading{See also}
532
533 \helpref{Looking up an archive entry by name}{wxarcbyname}
534
535
536 %
537 % automatically generated by HelpGen $Revision$ from
538 % wx/zipstrm.h at 16/Sep/04 12:19:29
539 %
540
541 \section{\class{wxZipNotifier}}\label{wxzipnotifier}
542
543 If you need to know when a \helpref{wxZipInputStream}{wxzipinputstream}
544 updates a \helpref{wxZipEntry}{wxzipentry},
545 you can create a notifier by deriving from this abstract base class,
546 overriding \helpref{OnEntryUpdated()}{wxzipnotifieronentryupdated}.
547 An instance of your notifier class can then be assigned to wxZipEntry
548 objects, using \helpref{wxZipEntry::SetNotifier()}{wxzipentrynotifier}.
549
550 Setting a notifier is not usually necessary. It is used to handle
551 certain cases when modifying an zip in a pipeline (i.e. between
552 non-seekable streams).
553 See '\helpref{Archives on non-seekable streams}{wxarcnoseek}'.
554
555 \wxheading{Derived from}
556
557 No base class
558
559 \wxheading{Include files}
560
561 <wx/zipstrm.h>
562
563 \wxheading{See also}
564
565 \helpref{Archives on non-seekable streams}{wxarcnoseek}\\
566 \helpref{wxZipEntry}{wxzipentry}\\
567 \helpref{wxZipInputStream}{wxzipinputstream}\\
568 \helpref{wxZipOutputStream}{wxzipoutputstream}
569
570 \latexignore{\rtfignore{\wxheading{Members}}}
571
572
573 \membersection{wxZipNotifier::OnEntryUpdated}\label{wxzipnotifieronentryupdated}
574
575 \func{void}{OnEntryUpdated}{\param{wxZipEntry\& }{entry}}
576
577 Override this to receive notifications when
578 an \helpref{wxZipEntry}{wxzipentry} object changes.
579
580
581 %
582 % automatically generated by HelpGen $Revision$ from
583 % wx/zipstrm.h at 16/Sep/04 12:19:29
584 %
585
586 \section{\class{wxZipOutputStream}}\label{wxzipoutputstream}
587
588 Output stream for writing zip files.
589
590 \helpref{PutNextEntry()}{wxzipoutputstreamputnextentry} is used to create
591 a new entry in the output zip, then the entry's data is written to the
592 wxZipOutputStream. Another call to PutNextEntry() closes the current
593 entry and begins the next.
594
595 \wxheading{Derived from}
596
597 \helpref{wxArchiveOutputStream}{wxarchiveoutputstream}
598
599 \wxheading{Include files}
600
601 <wx/zipstrm.h>
602
603 \wxheading{See also}
604
605 \helpref{Archive formats such as zip}{wxarc}\\
606 \helpref{wxZipEntry}{wxzipentry}\\
607 \helpref{wxZipInputStream}{wxzipinputstream}
608
609 \latexignore{\rtfignore{\wxheading{Members}}}
610
611
612 \membersection{wxZipOutputStream::wxZipOutputStream}\label{wxzipoutputstreamwxzipoutputstream}
613
614 \func{}{wxZipOutputStream}{\param{wxOutputStream\& }{stream}, \param{int }{level = -1}, \param{wxMBConv\& }{conv = wxConvLocal}}
615
616 \func{}{wxZipOutputStream}{\param{wxOutputStream*}{stream}, \param{int }{level = -1}, \param{wxMBConv\& }{conv = wxConvLocal}}
617
618 Constructor. {\tt level} is the compression level to use.
619 It can be a value between 0 and 9 or -1 to use the default value
620 which currently is equivalent to 6.
621
622 If the parent stream is passed as a pointer then the new filter stream
623 takes ownership of it. If it is passed by reference then it does not.
624
625 In a Unicode build the third parameter {\tt conv} is used to translate
626 the filename and comment fields to Unicode. It has no effect on the
627 stream's data.
628
629
630 \membersection{wxZipOutputStream::\destruct{wxZipOutputStream}}\label{wxzipoutputstreamdtor}
631
632 \func{}{\destruct{wxZipOutputStream}}{\void}
633
634 The destructor calls \helpref{Close()}{wxzipoutputstreamclose} to finish
635 writing the zip if it has not been called already.
636
637
638 \membersection{wxZipOutputStream::Close}\label{wxzipoutputstreamclose}
639
640 \func{bool}{Close}{\void}
641
642 Finishes writing the zip, returning true if successfully.
643 Called by the destructor if not called explicitly.
644
645
646 \membersection{wxZipOutputStream::CloseEntry}\label{wxzipoutputstreamcloseentry}
647
648 \func{bool}{CloseEntry}{\void}
649
650 Close the current entry. It is called implicitly whenever another new
651 entry is created with \helpref{CopyEntry()}{wxzipoutputstreamcopyentry}
652 or \helpref{PutNextEntry()}{wxzipoutputstreamputnextentry}, or
653 when the zip is closed.
654
655
656 \membersection{wxZipOutputStream::CopyArchiveMetaData}\label{wxzipoutputstreamcopyarchivemetadata}
657
658 \func{bool}{CopyArchiveMetaData}{\param{wxZipInputStream\& }{inputStream}}
659
660 Transfers the zip comment from the \helpref{wxZipInputStream}{wxzipinputstream}
661 to this output stream.
662
663
664 \membersection{wxZipOutputStream::CopyEntry}\label{wxzipoutputstreamcopyentry}
665
666 \func{bool}{CopyEntry}{\param{wxZipEntry* }{entry}, \param{wxZipInputStream\& }{inputStream}}
667
668 Takes ownership of {\tt entry} and uses it to create a new entry
669 in the zip. {\tt entry} is then opened in {\tt inputStream} and its contents
670 copied to this stream.
671
672 CopyEntry() is much more efficient than transferring the data using
673 Read() and Write() since it will copy them without decompressing and
674 recompressing them.
675
676 For zips on seekable streams, {\tt entry} must be from the same zip file
677 as {\tt stream}. For non-seekable streams, {\tt entry} must also be the
678 last thing read from {\tt inputStream}.
679
680
681 \membersection{wxZipOutputStream::Get/SetLevel}\label{wxzipoutputstreamlevel}
682
683 \constfunc{int}{GetLevel}{\void}
684
685 \func{void}{SetLevel}{\param{int }{level}}
686
687 Set the compression level that will be used the next time an entry is
688 created. It can be a value between 0 and 9 or -1 to use the default value
689 which currently is equivalent to 6.
690
691
692 \membersection{wxZipOutputStream::PutNextDirEntry}\label{wxzipoutputstreamputnextdirentry}
693
694 \func{bool}{PutNextDirEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}}
695
696 Create a new directory entry
697 (see \helpref{wxArchiveEntry::IsDir()}{wxarchiveentryisdir})
698 with the given name and timestamp.
699
700 \helpref{PutNextEntry()}{wxzipoutputstreamputnextentry} can
701 also be used to create directory entries, by supplying a name with
702 a trailing path separator.
703
704
705 \membersection{wxZipOutputStream::PutNextEntry}\label{wxzipoutputstreamputnextentry}
706
707 \func{bool}{PutNextEntry}{\param{wxZipEntry* }{entry}}
708
709 Takes ownership of {\tt entry} and uses it to create a new entry
710 in the zip.
711
712 \func{bool}{PutNextEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}}
713
714 Create a new entry with the given name, timestamp and size.
715
716
717 \membersection{wxZipOutputStream::SetComment}\label{wxzipoutputstreamsetcomment}
718
719 \func{void}{SetComment}{\param{const wxString\& }{comment}}
720
721 Sets a comment for the zip as a whole. It is written at the end of the
722 zip.
723