Index: sdch/open_vcdiff/depot/opensource/open-vcdiff/src/vcdiff_defs.h |
=================================================================== |
--- sdch/open_vcdiff/depot/opensource/open-vcdiff/src/vcdiff_defs.h (revision 2678) |
+++ sdch/open_vcdiff/depot/opensource/open-vcdiff/src/vcdiff_defs.h (working copy) |
@@ -1,196 +0,0 @@ |
-// Copyright 2008 Google Inc. |
-// Author: Lincoln Smith |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
-// |
-// Types and value definitions to support the implementation of RFC 3284 - |
-// The VCDIFF Generic Differencing and Compression Data Format. |
-// The RFC text can be found at http://www.faqs.org/rfcs/rfc3284.html |
-// Many of the definitions below reference sections in that text. |
- |
-#ifndef OPEN_VCDIFF_VCDIFF_DEFS_H_ |
-#define OPEN_VCDIFF_VCDIFF_DEFS_H_ |
- |
-#include <config.h> |
-#include <stdint.h> // int32_t |
-#include <climits> // UCHAR_MAX |
- |
-namespace open_vcdiff { |
- |
-enum VCDiffResult { |
- RESULT_SUCCESS = 0, |
- // Many functions within open-vcdiff return signed integer types, |
- // and can also return either of these special negative values: |
- // |
- // An error occurred while performing the requested operation. |
- RESULT_ERROR = -1, |
- // The end of available data was reached |
- // before the requested operation could be completed. |
- RESULT_END_OF_DATA = -2 |
-}; |
- |
-// The delta file header section as described in section 4.1 of the RFC: |
-// |
-// "Each delta file starts with a header section organized as below. |
-// Note the convention that square-brackets enclose optional items. |
-// |
-// Header1 - byte = 0xD6 |
-// Header2 - byte = 0xC3 |
-// Header3 - byte = 0xC4 |
-// Header4 - byte |
-// Hdr_Indicator - byte |
-// [Secondary compressor ID] - byte |
-// [Length of code table data] - integer |
-// [Code table data] |
-// |
-// The first three Header bytes are the ASCII characters 'V', 'C' and |
-// 'D' with their most significant bits turned on (in hexadecimal, the |
-// values are 0xD6, 0xC3, and 0xC4). The fourth Header byte is |
-// currently set to zero. In the future, it might be used to indicate |
-// the version of Vcdiff." |
-// |
-typedef struct DeltaFileHeader { |
- unsigned char header1; // Always 0xD6 ('V' | 0x80) |
- unsigned char header2; // Always 0xC3 ('C' | 0x80) |
- unsigned char header3; // Always 0xC4 ('D' | 0x80) |
- unsigned char header4; // 0x00 for standard format, 'S' if extensions used |
- unsigned char hdr_indicator; |
-} DeltaFileHeader; |
- |
-// The possible values for the Hdr_Indicator field, as described |
-// in section 4.1 of the RFC: |
-// |
-// "The Hdr_Indicator byte shows if there is any initialization data |
-// required to aid in the reconstruction of data in the Window sections. |
-// This byte MAY have non-zero values for either, both, or neither of |
-// the two bits VCD_DECOMPRESS and VCD_CODETABLE below: |
-// |
-// 7 6 5 4 3 2 1 0 |
-// +-+-+-+-+-+-+-+-+ |
-// | | | | | | | | | |
-// +-+-+-+-+-+-+-+-+ |
-// ^ ^ |
-// | | |
-// | +-- VCD_DECOMPRESS |
-// +---- VCD_CODETABLE |
-// |
-// If bit 0 (VCD_DECOMPRESS) is non-zero, this indicates that a |
-// secondary compressor may have been used to further compress certain |
-// parts of the delta encoding data [...]" |
-// [Secondary compressors are not supported by open-vcdiff.] |
-// |
-// "If bit 1 (VCD_CODETABLE) is non-zero, this indicates that an |
-// application-defined code table is to be used for decoding the delta |
-// instructions. [...]" |
-// |
-const unsigned char VCD_DECOMPRESS = 0x01; |
-const unsigned char VCD_CODETABLE = 0x02; |
- |
-// The possible values for the Win_Indicator field, as described |
-// in section 4.2 of the RFC: |
-// |
-// "Win_Indicator: |
-// |
-// This byte is a set of bits, as shown: |
-// |
-// 7 6 5 4 3 2 1 0 |
-// +-+-+-+-+-+-+-+-+ |
-// | | | | | | | | | |
-// +-+-+-+-+-+-+-+-+ |
-// ^ ^ |
-// | | |
-// | +-- VCD_SOURCE |
-// +---- VCD_TARGET |
-// |
-// If bit 0 (VCD_SOURCE) is non-zero, this indicates that a |
-// segment of data from the "source" file was used as the |
-// corresponding source window of data to encode the target |
-// window. The decoder will use this same source data segment to |
-// decode the target window. |
-// |
-// If bit 1 (VCD_TARGET) is non-zero, this indicates that a |
-// segment of data from the "target" file was used as the |
-// corresponding source window of data to encode the target |
-// window. As above, this same source data segment is used to |
-// decode the target window. |
-// |
-// The Win_Indicator byte MUST NOT have more than one of the bits |
-// set (non-zero). It MAY have none of these bits set." |
-// |
-const unsigned char VCD_SOURCE = 0x01; |
-const unsigned char VCD_TARGET = 0x02; |
-// If this flag is set, the delta window includes an Adler32 checksum |
-// of the target window data. Not part of the RFC draft standard. |
-const unsigned char VCD_CHECKSUM = 0x04; |
- |
-// The possible values for the Delta_Indicator field, as described |
-// in section 4.3 of the RFC: |
-// |
-// "Delta_Indicator: |
-// This byte is a set of bits, as shown: |
-// |
-// 7 6 5 4 3 2 1 0 |
-// +-+-+-+-+-+-+-+-+ |
-// | | | | | | | | | |
-// +-+-+-+-+-+-+-+-+ |
-// ^ ^ ^ |
-// | | | |
-// | | +-- VCD_DATACOMP |
-// | +---- VCD_INSTCOMP |
-// +------ VCD_ADDRCOMP |
-// |
-// VCD_DATACOMP: bit value 1. |
-// VCD_INSTCOMP: bit value 2. |
-// VCD_ADDRCOMP: bit value 4. |
-// |
-// [...] If the bit VCD_DECOMPRESS (Section 4.1) was on, each of these |
-// sections may have been compressed using the specified secondary |
-// compressor. The bit positions 0 (VCD_DATACOMP), 1 |
-// (VCD_INSTCOMP), and 2 (VCD_ADDRCOMP) respectively indicate, if |
-// non-zero, that the corresponding parts are compressed." |
-// [Secondary compressors are not supported, so open-vcdiff decoding will fail |
-// if these bits are not all zero.] |
-// |
-const unsigned char VCD_DATACOMP = 0x01; |
-const unsigned char VCD_INSTCOMP = 0x02; |
-const unsigned char VCD_ADDRCOMP = 0x04; |
- |
-// A COPY address has 32 bits, which places a limit |
-// of 2GB on the maximum combined size of the dictionary plus |
-// the target window (= the chunk of data to be encoded.) |
-typedef int32_t VCDAddress; |
- |
-// The address modes used for COPY instructions, as defined in |
-// section 5.3 of the RFC. |
-// |
-// The first two modes (0 and 1) are defined as SELF (addressing forward |
-// from the beginning of the source window) and HERE (addressing backward |
-// from the current position in the source window + previously decoded |
-// target data.) |
-// |
-// After those first two modes, there are a variable number of NEAR modes |
-// (which take a recently-used address and add a positive offset to it) |
-// and SAME modes (which match a previously-used address using a "hash" of |
-// the lowest bits of the address.) The number of NEAR and SAME modes |
-// depends on the defined size of the address cache; since this number is |
-// variable, these modes cannot be specified as enum values. |
-enum VCDiffModes { |
- VCD_SELF_MODE = 0, |
- VCD_HERE_MODE = 1, |
- VCD_FIRST_NEAR_MODE = 2, |
- VCD_MAX_MODES = UCHAR_MAX + 1 // 256 |
-}; |
- |
-} // namespace open_vcdiff |
- |
-#endif // OPEN_VCDIFF_VCDIFF_DEFS_H_ |