]> git.sesse.net Git - casparcg/blob - dependencies64/cef/include/capi/cef_zip_reader_capi.h
* Merged html producer and updated to latest CEF version (does not have satisfactory...
[casparcg] / dependencies64 / cef / include / capi / cef_zip_reader_capi.h
1 // Copyright (c) 2015 Marshall A. Greenblatt. All rights reserved.
2 //
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are
5 // met:
6 //
7 //    * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer.
9 //    * Redistributions in binary form must reproduce the above
10 // copyright notice, this list of conditions and the following disclaimer
11 // in the documentation and/or other materials provided with the
12 // distribution.
13 //    * Neither the name of Google Inc. nor the name Chromium Embedded
14 // Framework nor the names of its contributors may be used to endorse
15 // or promote products derived from this software without specific prior
16 // written permission.
17 //
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // ---------------------------------------------------------------------------
31 //
32 // This file was generated by the CEF translator tool and should not edited
33 // by hand. See the translator.README.txt file in the tools directory for
34 // more information.
35 //
36
37 #ifndef CEF_INCLUDE_CAPI_CEF_ZIP_READER_CAPI_H_
38 #define CEF_INCLUDE_CAPI_CEF_ZIP_READER_CAPI_H_
39 #pragma once
40
41 #include "include/capi/cef_base_capi.h"
42 #include "include/capi/cef_stream_capi.h"
43
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47
48
49 ///
50 // Structure that supports the reading of zip archives via the zlib unzip API.
51 // The functions of this structure should only be called on the thread that
52 // creates the object.
53 ///
54 typedef struct _cef_zip_reader_t {
55   ///
56   // Base structure.
57   ///
58   cef_base_t base;
59
60   ///
61   // Moves the cursor to the first file in the archive. Returns true (1) if the
62   // cursor position was set successfully.
63   ///
64   int (CEF_CALLBACK *move_to_first_file)(struct _cef_zip_reader_t* self);
65
66   ///
67   // Moves the cursor to the next file in the archive. Returns true (1) if the
68   // cursor position was set successfully.
69   ///
70   int (CEF_CALLBACK *move_to_next_file)(struct _cef_zip_reader_t* self);
71
72   ///
73   // Moves the cursor to the specified file in the archive. If |caseSensitive|
74   // is true (1) then the search will be case sensitive. Returns true (1) if the
75   // cursor position was set successfully.
76   ///
77   int (CEF_CALLBACK *move_to_file)(struct _cef_zip_reader_t* self,
78       const cef_string_t* fileName, int caseSensitive);
79
80   ///
81   // Closes the archive. This should be called directly to ensure that cleanup
82   // occurs on the correct thread.
83   ///
84   int (CEF_CALLBACK *close)(struct _cef_zip_reader_t* self);
85
86
87   // The below functions act on the file at the current cursor position.
88
89   ///
90   // Returns the name of the file.
91   ///
92   // The resulting string must be freed by calling cef_string_userfree_free().
93   cef_string_userfree_t (CEF_CALLBACK *get_file_name)(
94       struct _cef_zip_reader_t* self);
95
96   ///
97   // Returns the uncompressed size of the file.
98   ///
99   int64 (CEF_CALLBACK *get_file_size)(struct _cef_zip_reader_t* self);
100
101   ///
102   // Returns the last modified timestamp for the file.
103   ///
104   time_t (CEF_CALLBACK *get_file_last_modified)(struct _cef_zip_reader_t* self);
105
106   ///
107   // Opens the file for reading of uncompressed data. A read password may
108   // optionally be specified.
109   ///
110   int (CEF_CALLBACK *open_file)(struct _cef_zip_reader_t* self,
111       const cef_string_t* password);
112
113   ///
114   // Closes the file.
115   ///
116   int (CEF_CALLBACK *close_file)(struct _cef_zip_reader_t* self);
117
118   ///
119   // Read uncompressed file contents into the specified buffer. Returns < 0 if
120   // an error occurred, 0 if at the end of file, or the number of bytes read.
121   ///
122   int (CEF_CALLBACK *read_file)(struct _cef_zip_reader_t* self, void* buffer,
123       size_t bufferSize);
124
125   ///
126   // Returns the current offset in the uncompressed file contents.
127   ///
128   int64 (CEF_CALLBACK *tell)(struct _cef_zip_reader_t* self);
129
130   ///
131   // Returns true (1) if at end of the file contents.
132   ///
133   int (CEF_CALLBACK *eof)(struct _cef_zip_reader_t* self);
134 } cef_zip_reader_t;
135
136
137 ///
138 // Create a new cef_zip_reader_t object. The returned object's functions can
139 // only be called from the thread that created the object.
140 ///
141 CEF_EXPORT cef_zip_reader_t* cef_zip_reader_create(
142     struct _cef_stream_reader_t* stream);
143
144
145 #ifdef __cplusplus
146 }
147 #endif
148
149 #endif  // CEF_INCLUDE_CAPI_CEF_ZIP_READER_CAPI_H_