diff options
author | Anas Nashif <anas.nashif@intel.com> | 2013-02-22 07:24:03 -0800 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2013-02-22 07:24:03 -0800 |
commit | 2cdd5bf0e73eff343d4ca085b315e78982e76202 (patch) | |
tree | e9082ffa48b4651e998fd9caa1dab827a9e6b7ae /xd_edsio.h | |
download | xdelta1-upstream.tar.gz xdelta1-upstream.tar.bz2 xdelta1-upstream.zip |
Imported Upstream version 1.1.4upstream/1.1.4upstream
Diffstat (limited to 'xd_edsio.h')
-rwxr-xr-x | xd_edsio.h | 401 |
1 files changed, 401 insertions, 0 deletions
diff --git a/xd_edsio.h b/xd_edsio.h new file mode 100755 index 0000000..fef9051 --- /dev/null +++ b/xd_edsio.h @@ -0,0 +1,401 @@ +/* -*-Mode: C;-*- + * Copyright (C) 1997, 1998, 1999 Josh MacDonald + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Josh MacDonald <jmacd@CS.Berkeley.EDU> + * + * This file was AUTOMATICALLY GENERATED using: + * + * $Id: edsio.el 1.2 Sun, 28 Jan 2007 12:21:11 -0800 jmacd $ + */ + +#include "edsio.h" + +#include "xdelta.h" + +#ifndef _XD_EDSIO_H_ +#define _XD_EDSIO_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "edsio_edsio.h" + +/* Initialize this library. */ + +gboolean xd_edsio_init (void); + +/* Types defined here. */ + +/* XdStringEventCode. + */ + +typedef struct _XdStringEventCode XdStringEventCode; +struct _XdStringEventCode { gint code; }; + +typedef struct _XdStringEvent XdStringEvent; +struct _XdStringEvent { gint code; const char* srcfile; guint srcline; const char* version; }; + +/* XdHandleIntIntEventCode. + */ + +typedef struct _XdHandleIntIntEventCode XdHandleIntIntEventCode; +struct _XdHandleIntIntEventCode { gint code; }; + +typedef struct _XdHandleIntIntEvent XdHandleIntIntEvent; +struct _XdHandleIntIntEvent { gint code; const char* srcfile; guint srcline; FileHandle* stream; int expected; int received; }; + +/* XdHandleStringStringEventCode. + */ + +typedef struct _XdHandleStringStringEventCode XdHandleStringStringEventCode; +struct _XdHandleStringStringEventCode { gint code; }; + +typedef struct _XdHandleStringStringEvent XdHandleStringStringEvent; +struct _XdHandleStringStringEvent { gint code; const char* srcfile; guint srcline; FileHandle* stream; const char* expected; const char* received; }; + +/* XdIntEventCode. + */ + +typedef struct _XdIntEventCode XdIntEventCode; +struct _XdIntEventCode { gint code; }; + +typedef struct _XdIntEvent XdIntEvent; +struct _XdIntEvent { gint code; const char* srcfile; guint srcline; int index; }; + +/* XdVoidEventCode. + */ + +typedef struct _XdVoidEventCode XdVoidEventCode; +struct _XdVoidEventCode { gint code; }; + +typedef struct _XdVoidEvent XdVoidEvent; +struct _XdVoidEvent { gint code; const char* srcfile; guint srcline; }; + +typedef struct _SerialVersion0Instruction SerialVersion0Instruction; +typedef struct _SerialVersion0Control SerialVersion0Control; +typedef struct _SerialVersion0SourceInfo SerialVersion0SourceInfo; +typedef struct _SerialRsyncIndex SerialRsyncIndex; +typedef struct _SerialRsyncIndexElt SerialRsyncIndexElt; +typedef struct _SerialXdeltaInstruction SerialXdeltaInstruction; +typedef struct _SerialXdeltaControl SerialXdeltaControl; +typedef struct _SerialXdeltaSourceInfo SerialXdeltaSourceInfo; +typedef struct _SerialXdeltaIndex SerialXdeltaIndex; +typedef struct _SerialXdeltaChecksum SerialXdeltaChecksum; +/* Functions declared here. */ + +/* Serial Types */ + +enum _SerialXdType { + + ST_XdeltaChecksum = (1<<(1+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_XdeltaIndex = (1<<(2+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_XdeltaSourceInfo = (1<<(3+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_XdeltaControl = (1<<(7+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_XdeltaInstruction = (1<<(8+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_RsyncIndexElt = (1<<(9+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_RsyncIndex = (1<<(10+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_Version0SourceInfo = (1<<(4+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_Version0Control = (1<<(5+EDSIO_LIBRARY_OFFSET_BITS))+3, + ST_Version0Instruction = (1<<(6+EDSIO_LIBRARY_OFFSET_BITS))+3 +}; + + + +/* XdeltaChecksum Structure + */ + +struct _SerialXdeltaChecksum { + guint16 high; + guint16 low; +}; + +void serializeio_print_xdeltachecksum_obj (SerialXdeltaChecksum* obj, guint indent_spaces); + +gboolean unserialize_xdeltachecksum (SerialSource *source, SerialXdeltaChecksum**); +gboolean unserialize_xdeltachecksum_internal (SerialSource *source, SerialXdeltaChecksum** ); +gboolean unserialize_xdeltachecksum_internal_noalloc (SerialSource *source, SerialXdeltaChecksum* ); +gboolean serialize_xdeltachecksum (SerialSink *sink, guint16 high, guint16 low); +gboolean serialize_xdeltachecksum_obj (SerialSink *sink, const SerialXdeltaChecksum* obj); +gboolean serialize_xdeltachecksum_internal (SerialSink *sink, guint16 high, guint16 low); +gboolean serialize_xdeltachecksum_obj_internal (SerialSink *sink, SerialXdeltaChecksum* obj); +guint serializeio_count_xdeltachecksum (guint16 high, guint16 low); +guint serializeio_count_xdeltachecksum_obj (SerialXdeltaChecksum const* obj); + +/* XdeltaIndex Structure + */ + +struct _SerialXdeltaIndex { + guint32 file_len; + guint8 file_md5[16]; + guint32 index_len; + SerialXdeltaChecksum* index; +}; + +void serializeio_print_xdeltaindex_obj (SerialXdeltaIndex* obj, guint indent_spaces); + +gboolean unserialize_xdeltaindex (SerialSource *source, SerialXdeltaIndex**); +gboolean unserialize_xdeltaindex_internal (SerialSource *source, SerialXdeltaIndex** ); +gboolean unserialize_xdeltaindex_internal_noalloc (SerialSource *source, SerialXdeltaIndex* ); +gboolean serialize_xdeltaindex (SerialSink *sink, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialXdeltaChecksum const* index); +gboolean serialize_xdeltaindex_obj (SerialSink *sink, const SerialXdeltaIndex* obj); +gboolean serialize_xdeltaindex_internal (SerialSink *sink, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialXdeltaChecksum const* index); +gboolean serialize_xdeltaindex_obj_internal (SerialSink *sink, SerialXdeltaIndex* obj); +guint serializeio_count_xdeltaindex (guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialXdeltaChecksum const* index); +guint serializeio_count_xdeltaindex_obj (SerialXdeltaIndex const* obj); + +/* XdeltaSourceInfo Structure + */ + +struct _SerialXdeltaSourceInfo { + const gchar* name; + guint8 md5[16]; + guint32 len; + gboolean isdata; + gboolean sequential; + guint32 position; + guint32 copies; + guint32 copy_length; + FileHandle *in; +}; + +void serializeio_print_xdeltasourceinfo_obj (SerialXdeltaSourceInfo* obj, guint indent_spaces); + +gboolean unserialize_xdeltasourceinfo (SerialSource *source, SerialXdeltaSourceInfo**); +gboolean unserialize_xdeltasourceinfo_internal (SerialSource *source, SerialXdeltaSourceInfo** ); +gboolean unserialize_xdeltasourceinfo_internal_noalloc (SerialSource *source, SerialXdeltaSourceInfo* ); +gboolean serialize_xdeltasourceinfo (SerialSink *sink, const gchar* name, const guint8 md5[16], guint32 len, gboolean isdata, gboolean sequential); +gboolean serialize_xdeltasourceinfo_obj (SerialSink *sink, const SerialXdeltaSourceInfo* obj); +gboolean serialize_xdeltasourceinfo_internal (SerialSink *sink, const gchar* name, const guint8 md5[16], guint32 len, gboolean isdata, gboolean sequential); +gboolean serialize_xdeltasourceinfo_obj_internal (SerialSink *sink, SerialXdeltaSourceInfo* obj); +guint serializeio_count_xdeltasourceinfo (const gchar* name, const guint8 md5[16], guint32 len, gboolean isdata, gboolean sequential); +guint serializeio_count_xdeltasourceinfo_obj (SerialXdeltaSourceInfo const* obj); + +/* XdeltaControl Structure + */ + +struct _SerialXdeltaControl { + guint8 to_md5[16]; + guint32 to_len; + gboolean has_data; + guint32 source_info_len; + SerialXdeltaSourceInfo** source_info; + guint32 inst_len; + SerialXdeltaInstruction* inst; + GArray *inst_array; + GPtrArray *source_info_array; +}; + +void serializeio_print_xdeltacontrol_obj (SerialXdeltaControl* obj, guint indent_spaces); + +gboolean unserialize_xdeltacontrol (SerialSource *source, SerialXdeltaControl**); +gboolean unserialize_xdeltacontrol_internal (SerialSource *source, SerialXdeltaControl** ); +gboolean unserialize_xdeltacontrol_internal_noalloc (SerialSource *source, SerialXdeltaControl* ); +gboolean serialize_xdeltacontrol (SerialSink *sink, const guint8 to_md5[16], guint32 to_len, gboolean has_data, guint32 source_info_len, SerialXdeltaSourceInfo* const* source_info, guint32 inst_len, SerialXdeltaInstruction const* inst); +gboolean serialize_xdeltacontrol_obj (SerialSink *sink, const SerialXdeltaControl* obj); +gboolean serialize_xdeltacontrol_internal (SerialSink *sink, const guint8 to_md5[16], guint32 to_len, gboolean has_data, guint32 source_info_len, SerialXdeltaSourceInfo* const* source_info, guint32 inst_len, SerialXdeltaInstruction const* inst); +gboolean serialize_xdeltacontrol_obj_internal (SerialSink *sink, SerialXdeltaControl* obj); +guint serializeio_count_xdeltacontrol (const guint8 to_md5[16], guint32 to_len, gboolean has_data, guint32 source_info_len, SerialXdeltaSourceInfo* const* source_info, guint32 inst_len, SerialXdeltaInstruction const* inst); +guint serializeio_count_xdeltacontrol_obj (SerialXdeltaControl const* obj); + +/* XdeltaInstruction Structure + */ + +struct _SerialXdeltaInstruction { + guint32 index; + guint32 offset; + guint32 length; + guint32 output_start; +}; + +void serializeio_print_xdeltainstruction_obj (SerialXdeltaInstruction* obj, guint indent_spaces); + +gboolean unserialize_xdeltainstruction (SerialSource *source, SerialXdeltaInstruction**); +gboolean unserialize_xdeltainstruction_internal (SerialSource *source, SerialXdeltaInstruction** ); +gboolean unserialize_xdeltainstruction_internal_noalloc (SerialSource *source, SerialXdeltaInstruction* ); +gboolean serialize_xdeltainstruction (SerialSink *sink, guint32 index, guint32 offset, guint32 length); +gboolean serialize_xdeltainstruction_obj (SerialSink *sink, const SerialXdeltaInstruction* obj); +gboolean serialize_xdeltainstruction_internal (SerialSink *sink, guint32 index, guint32 offset, guint32 length); +gboolean serialize_xdeltainstruction_obj_internal (SerialSink *sink, SerialXdeltaInstruction* obj); +guint serializeio_count_xdeltainstruction (guint32 index, guint32 offset, guint32 length); +guint serializeio_count_xdeltainstruction_obj (SerialXdeltaInstruction const* obj); + +/* RsyncIndexElt Structure + */ + +struct _SerialRsyncIndexElt { + guint8 md5[16]; + SerialXdeltaChecksum cksum; + SerialRsyncIndexElt* next; + gint match_offset; +}; + +void serializeio_print_rsyncindexelt_obj (SerialRsyncIndexElt* obj, guint indent_spaces); + +gboolean unserialize_rsyncindexelt (SerialSource *source, SerialRsyncIndexElt**); +gboolean unserialize_rsyncindexelt_internal (SerialSource *source, SerialRsyncIndexElt** ); +gboolean unserialize_rsyncindexelt_internal_noalloc (SerialSource *source, SerialRsyncIndexElt* ); +gboolean serialize_rsyncindexelt (SerialSink *sink, const guint8 md5[16], SerialXdeltaChecksum const* cksum); +gboolean serialize_rsyncindexelt_obj (SerialSink *sink, const SerialRsyncIndexElt* obj); +gboolean serialize_rsyncindexelt_internal (SerialSink *sink, const guint8 md5[16], SerialXdeltaChecksum const* cksum); +gboolean serialize_rsyncindexelt_obj_internal (SerialSink *sink, SerialRsyncIndexElt* obj); +guint serializeio_count_rsyncindexelt (const guint8 md5[16], SerialXdeltaChecksum const* cksum); +guint serializeio_count_rsyncindexelt_obj (SerialRsyncIndexElt const* obj); + +/* RsyncIndex Structure + */ + +struct _SerialRsyncIndex { + guint32 seg_len; + guint32 file_len; + guint8 file_md5[16]; + guint32 index_len; + SerialRsyncIndexElt* index; + SerialRsyncIndexElt** table; + guint table_size; +}; + +void serializeio_print_rsyncindex_obj (SerialRsyncIndex* obj, guint indent_spaces); + +gboolean unserialize_rsyncindex (SerialSource *source, SerialRsyncIndex**); +gboolean unserialize_rsyncindex_internal (SerialSource *source, SerialRsyncIndex** ); +gboolean unserialize_rsyncindex_internal_noalloc (SerialSource *source, SerialRsyncIndex* ); +gboolean serialize_rsyncindex (SerialSink *sink, guint32 seg_len, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialRsyncIndexElt const* index); +gboolean serialize_rsyncindex_obj (SerialSink *sink, const SerialRsyncIndex* obj); +gboolean serialize_rsyncindex_internal (SerialSink *sink, guint32 seg_len, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialRsyncIndexElt const* index); +gboolean serialize_rsyncindex_obj_internal (SerialSink *sink, SerialRsyncIndex* obj); +guint serializeio_count_rsyncindex (guint32 seg_len, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialRsyncIndexElt const* index); +guint serializeio_count_rsyncindex_obj (SerialRsyncIndex const* obj); + +/* Version0SourceInfo Structure + */ + +struct _SerialVersion0SourceInfo { + guint8 md5[16]; + guint8 real_md5[16]; + guint32 length; +}; + +void serializeio_print_version0sourceinfo_obj (SerialVersion0SourceInfo* obj, guint indent_spaces); + +gboolean unserialize_version0sourceinfo (SerialSource *source, SerialVersion0SourceInfo**); +gboolean unserialize_version0sourceinfo_internal (SerialSource *source, SerialVersion0SourceInfo** ); +gboolean unserialize_version0sourceinfo_internal_noalloc (SerialSource *source, SerialVersion0SourceInfo* ); +gboolean serialize_version0sourceinfo (SerialSink *sink, const guint8 md5[16], const guint8 real_md5[16], guint32 length); +gboolean serialize_version0sourceinfo_obj (SerialSink *sink, const SerialVersion0SourceInfo* obj); +gboolean serialize_version0sourceinfo_internal (SerialSink *sink, const guint8 md5[16], const guint8 real_md5[16], guint32 length); +gboolean serialize_version0sourceinfo_obj_internal (SerialSink *sink, SerialVersion0SourceInfo* obj); +guint serializeio_count_version0sourceinfo (const guint8 md5[16], const guint8 real_md5[16], guint32 length); +guint serializeio_count_version0sourceinfo_obj (SerialVersion0SourceInfo const* obj); + +/* Version0Control Structure + */ + +struct _SerialVersion0Control { + gboolean normalized; + guint32 data_len; + SerialVersion0SourceInfo to_info; + guint32 source_info_len; + SerialVersion0SourceInfo** source_info; + guint32 inst_len; + SerialVersion0Instruction* inst; + GArray *inst_array; + GPtrArray *source_info_array; +}; + +void serializeio_print_version0control_obj (SerialVersion0Control* obj, guint indent_spaces); + +gboolean unserialize_version0control (SerialSource *source, SerialVersion0Control**); +gboolean unserialize_version0control_internal (SerialSource *source, SerialVersion0Control** ); +gboolean unserialize_version0control_internal_noalloc (SerialSource *source, SerialVersion0Control* ); +gboolean serialize_version0control (SerialSink *sink, gboolean normalized, guint32 data_len, SerialVersion0SourceInfo const* to_info, guint32 source_info_len, SerialVersion0SourceInfo* const* source_info, guint32 inst_len, SerialVersion0Instruction const* inst); +gboolean serialize_version0control_obj (SerialSink *sink, const SerialVersion0Control* obj); +gboolean serialize_version0control_internal (SerialSink *sink, gboolean normalized, guint32 data_len, SerialVersion0SourceInfo const* to_info, guint32 source_info_len, SerialVersion0SourceInfo* const* source_info, guint32 inst_len, SerialVersion0Instruction const* inst); +gboolean serialize_version0control_obj_internal (SerialSink *sink, SerialVersion0Control* obj); +guint serializeio_count_version0control (gboolean normalized, guint32 data_len, SerialVersion0SourceInfo const* to_info, guint32 source_info_len, SerialVersion0SourceInfo* const* source_info, guint32 inst_len, SerialVersion0Instruction const* inst); +guint serializeio_count_version0control_obj (SerialVersion0Control const* obj); + +/* Version0Instruction Structure + */ + +struct _SerialVersion0Instruction { + guint32 offset; + guint32 length; + guint8 type; + guint8 index; +}; + +void serializeio_print_version0instruction_obj (SerialVersion0Instruction* obj, guint indent_spaces); + +gboolean unserialize_version0instruction (SerialSource *source, SerialVersion0Instruction**); +gboolean unserialize_version0instruction_internal (SerialSource *source, SerialVersion0Instruction** ); +gboolean unserialize_version0instruction_internal_noalloc (SerialSource *source, SerialVersion0Instruction* ); +gboolean serialize_version0instruction (SerialSink *sink, guint32 offset, guint32 length); +gboolean serialize_version0instruction_obj (SerialSink *sink, const SerialVersion0Instruction* obj); +gboolean serialize_version0instruction_internal (SerialSink *sink, guint32 offset, guint32 length); +gboolean serialize_version0instruction_obj_internal (SerialSink *sink, SerialVersion0Instruction* obj); +guint serializeio_count_version0instruction (guint32 offset, guint32 length); +guint serializeio_count_version0instruction_obj (SerialVersion0Instruction const* obj); + +void xd_generate_void_event_internal (XdVoidEventCode code, const char* srcfile, gint srcline); +#define xd_generate_void_event(ecode) xd_generate_void_event_internal((ecode),__FILE__,__LINE__) + +extern const XdVoidEventCode EC_XdTooFewSources; +#define EC_XdTooFewSourcesValue ((0<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +extern const XdVoidEventCode EC_XdTooManySources; +#define EC_XdTooManySourcesValue ((1<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +void xd_generate_int_event_internal (XdIntEventCode code, const char* srcfile, gint srcline, int index); +#define xd_generate_int_event(ecode, index) xd_generate_int_event_internal((ecode),__FILE__,__LINE__, (index)) + +extern const XdIntEventCode EC_XdOutOfRangeSourceIndex; +#define EC_XdOutOfRangeSourceIndexValue ((2<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +extern const XdVoidEventCode EC_XdInvalidControl; +#define EC_XdInvalidControlValue ((3<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +extern const XdVoidEventCode EC_XdInvalidRsyncCache; +#define EC_XdInvalidRsyncCacheValue ((4<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +extern const XdVoidEventCode EC_XdIncompatibleDelta; +#define EC_XdIncompatibleDeltaValue ((5<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +void xd_generate_handlestringstring_event_internal (XdHandleStringStringEventCode code, const char* srcfile, gint srcline, FileHandle* stream, const char* expected, const char* received); +#define xd_generate_handlestringstring_event(ecode, stream, expected, received) xd_generate_handlestringstring_event_internal((ecode),__FILE__,__LINE__, (stream), (expected), (received)) + +extern const XdHandleStringStringEventCode EC_XdStreamChecksumFailed; +#define EC_XdStreamChecksumFailedValue ((6<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +void xd_generate_handleintint_event_internal (XdHandleIntIntEventCode code, const char* srcfile, gint srcline, FileHandle* stream, int expected, int received); +#define xd_generate_handleintint_event(ecode, stream, expected, received) xd_generate_handleintint_event_internal((ecode),__FILE__,__LINE__, (stream), (expected), (received)) + +extern const XdHandleIntIntEventCode EC_XdStreamLengthFailed; +#define EC_XdStreamLengthFailedValue ((7<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +void xd_generate_string_event_internal (XdStringEventCode code, const char* srcfile, gint srcline, const char* version); +#define xd_generate_string_event(ecode, version) xd_generate_string_event_internal((ecode),__FILE__,__LINE__, (version)) + +extern const XdStringEventCode EC_XdBackwardCompatibilityMode; +#define EC_XdBackwardCompatibilityModeValue ((8<<EDSIO_LIBRARY_OFFSET_BITS)+3) + +#ifdef __cplusplus +} +#endif + +#endif /* _XD_EDSIO_H_ */ + |