1732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// Copyright 2009 Google Inc. 2732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// 3732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// Licensed under the Apache License, Version 2.0 (the "License"); 4732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// you may not use this file except in compliance with the License. 5732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// You may obtain a copy of the License at 6732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// 7732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// http://www.apache.org/licenses/LICENSE-2.0 8732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// 9732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// Unless required by applicable law or agreed to in writing, software 10732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// distributed under the License is distributed on an "AS IS" BASIS, 11732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// See the License for the specific language governing permissions and 13732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// limitations under the License. 14732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 15732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#ifndef OPEN_VCDIFF_FORMAT_EXTENSION_FLAGS_H_ 16732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#define OPEN_VCDIFF_FORMAT_EXTENSION_FLAGS_H_ 17732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 18732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comnamespace open_vcdiff { 19732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 20732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// These flags are passed to the constructor of VCDiffStreamingEncoder 21732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// to determine whether certain open-vcdiff format extensions 22732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// (which are not part of the RFC 3284 draft standard for VCDIFF) 23732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// are employed. 24732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// 25732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// Because these extensions are not part of the VCDIFF standard, if 26732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// any of these flags except VCD_STANDARD_FORMAT is specified, then the caller 27732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// must be certain that the receiver of the data will be using open-vcdiff 28732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// to decode the delta file, or at least that the receiver can interpret 29732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// these extensions. The encoder will use an 'S' as the fourth character 30732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// in the delta file to indicate that non-standard extensions are being used. 31732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com// 32732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comenum VCDiffFormatExtensionFlagValues { 33732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // No extensions: the encoded format will conform to the RFC 34732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // draft standard for VCDIFF. 35732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com VCD_STANDARD_FORMAT = 0x00, 36732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // If this flag is specified, then the encoder writes each delta file 37732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // window by interleaving instructions and sizes with their corresponding 38732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // addresses and data, rather than placing these elements 39732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // into three separate sections. This facilitates providing partially 40732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // decoded results when only a portion of a delta file window is received 41732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // (e.g. when HTTP over TCP is used as the transmission protocol.) 42732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com VCD_FORMAT_INTERLEAVED = 0x01, 43732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // If this flag is specified, then an Adler32 checksum 44732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // of the target window data is included in the delta window. 45732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com VCD_FORMAT_CHECKSUM = 0x02, 46732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // If this flag is specified, the encoder will output a JSON string 47732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // instead of the VCDIFF file format. If this flag is set, all other 48732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com // flags have no effect. 49732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com VCD_FORMAT_JSON = 0x04 50732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com}; 51732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 52732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.comtypedef int VCDiffFormatExtensionFlags; 53732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 54732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com} // namespace open_vcdiff 55732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com 56732fff248e662ec47aa27c124632f406f27b6c8dopenvcdiff@gmail.com#endif // OPEN_VCDIFF_FORMAT_EXTENSION_FLAGS_H_ 57