Expose zip archive reading support (issue #30).

Move ClientReadHandler to CefByteReadHandler in cef_wrapper.h.
Add support for the time_t data type to cef_parser.py.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@125 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2010-10-24 16:41:21 +00:00
parent 1911b23bf5
commit 5a4c8f5a13
20 changed files with 1492 additions and 99 deletions

View File

@@ -1015,7 +1015,7 @@ typedef struct _cef_xml_reader_t
// if the cursor position was set successfully.
int (CEF_CALLBACK *move_to_next_node)(struct _cef_xml_reader_t* self);
// Close the document. This must be called directly to ensure that cleanup
// Close the document. This should be called directly to ensure that cleanup
// occurs on the correct thread.
int (CEF_CALLBACK *close)(struct _cef_xml_reader_t* self);
@@ -1157,6 +1157,70 @@ CEF_EXPORT cef_xml_reader_t* cef_xml_reader_create(cef_stream_reader_t* stream,
enum cef_xml_encoding_type_t encodingType, const wchar_t* URI);
// Structure that supports the reading of zip archives via the zlib unzip API.
typedef struct _cef_zip_reader_t
{
// Base structure.
cef_base_t base;
// Moves the cursor to the first file in the archive. Returns true (1) if the
// cursor position was set successfully.
int (CEF_CALLBACK *move_to_first_file)(struct _cef_zip_reader_t* self);
// Moves the cursor to the next file in the archive. Returns true (1) if the
// cursor position was set successfully.
int (CEF_CALLBACK *move_to_next_file)(struct _cef_zip_reader_t* self);
// Moves the cursor to the specified file in the archive. If |caseSensitive|
// is true (1) then the search will be case sensitive. Returns true (1) if the
// cursor position was set successfully.
int (CEF_CALLBACK *move_to_file)(struct _cef_zip_reader_t* self,
const wchar_t* fileName, int caseSensitive);
// Closes the archive. This should be called directly to ensure that cleanup
// occurs on the correct thread.
int (CEF_CALLBACK *close)(struct _cef_zip_reader_t* self);
// The below functions act on the file at the current cursor position.
// Returns the name of the file.
// The resulting string must be freed by calling cef_string_free().
cef_string_t (CEF_CALLBACK *get_file_name)(struct _cef_zip_reader_t* self);
// Returns the uncompressed size of the file.
long (CEF_CALLBACK *get_file_size)(struct _cef_zip_reader_t* self);
// Returns the last modified timestamp for the file.
time_t (CEF_CALLBACK *get_file_last_modified)(struct _cef_zip_reader_t* self);
// Opens the file for reading of uncompressed data. A read password may
// optionally be specified.
int (CEF_CALLBACK *open_file)(struct _cef_zip_reader_t* self,
const wchar_t* password);
// Closes the file.
int (CEF_CALLBACK *close_file)(struct _cef_zip_reader_t* self);
// Read uncompressed file contents into the specified buffer. Returns < 0 if
// an error occurred, 0 if at the end of file, or the number of bytes read.
int (CEF_CALLBACK *read_file)(struct _cef_zip_reader_t* self, void* buffer,
size_t bufferSize);
// Returns the current offset in the uncompressed file contents.
long (CEF_CALLBACK *tell)(struct _cef_zip_reader_t* self);
// Returns true (1) if at end of the file contents.
int (CEF_CALLBACK *eof)(struct _cef_zip_reader_t* self);
} cef_zip_reader_t;
// Create a new cef_zip_reader_t object. The returned object's functions can
// only be called from the thread that created the object.
CEF_EXPORT cef_zip_reader_t* cef_zip_reader_create(cef_stream_reader_t* stream);
#ifdef __cplusplus
}
#endif