/************************************************************************* * (C) 2010 AITNET ltd - Sofia/Bulgaria - * by Michael Pounov * * $Author: misho $ * $Id: aitsync.h,v 1.1 2010/03/24 16:00:15 misho Exp $ * *************************************************************************/ #ifndef __AITSYNC_H #define __AITSYNC_H #include #include #define CHUNK_MAX 2048 #define DLTSYNC_MAGIC 0xD34DC0D3 #define SIGSYNC_MAGIC 0xDEADBEEF typedef struct tagSyncChunk { u_int sc_magic; u_long sc_id; off_t sc_off; size_t sc_len; u_int sc_roll; u_char sc_cksum[MD5_DIGEST_LENGTH]; } sync_chunk_t; // ------------------------------------------------------- // sync_GetErrno() Get error code of last operation inline int sync_GetErrno(); // sync_GetError() Get error text of last operation inline const char *sync_GetError(); // ------------------------------------------------------- /* * syncSignature() Calculate and create signature for diff * @csInput = Input patched file name for calculating check sums * @csSig = Output Signature file name * return: -1 error, 0 ok */ int syncSignature(const char *csInput, const char *csSig); /* * syncDelta() Create Delta patch file * @csInput = Input original source file name for make delta patch file * @csSig = Input Signature file name * @csDelta = Output Delta patch file name * @compress = Compress output, 0 not compressed * return: -1 error, 0 ok, create delta patch, 1 ok, no differences and not create patch */ int syncDelta(const char *csInput, const char *csSig, const char *csDelta, int compress); /* * syncPatch() Apply delta patch file to target * @csInput = Input target file name for patch * @csDelta = Input Delta patch file name * @csPatch = After applied patch create new alternate target file, if != NULL * @compress = Compress output, 0 not compressed * return: -1 error, 0 ok, create delta patch, 1 ok, no differences and not create patch */ int syncPatch(const char *csInput, const char *csDelta, const char *csPatch, int compress); #endif