// Copyright 2009 Google Inc. // // 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. #ifndef OPEN_VCDIFF_FORMAT_EXTENSION_FLAGS_H_ #define OPEN_VCDIFF_FORMAT_EXTENSION_FLAGS_H_ namespace open_vcdiff { // These flags are passed to the constructor of VCDiffStreamingEncoder // to determine whether certain open-vcdiff format extensions // (which are not part of the RFC 3284 draft standard for VCDIFF) // are employed. // // Because these extensions are not part of the VCDIFF standard, if // any of these flags except VCD_STANDARD_FORMAT is specified, then the caller // must be certain that the receiver of the data will be using open-vcdiff // to decode the delta file, or at least that the receiver can interpret // these extensions. The encoder will use an 'S' as the fourth character // in the delta file to indicate that non-standard extensions are being used. // enum VCDiffFormatExtensionFlagValues { // No extensions: the encoded format will conform to the RFC // draft standard for VCDIFF. VCD_STANDARD_FORMAT = 0x00, // If this flag is specified, then the encoder writes each delta file // window by interleaving instructions and sizes with their corresponding // addresses and data, rather than placing these elements // into three separate sections. This facilitates providing partially // decoded results when only a portion of a delta file window is received // (e.g. when HTTP over TCP is used as the transmission protocol.) VCD_FORMAT_INTERLEAVED = 0x01, // If this flag is specified, then an Adler32 checksum // of the target window data is included in the delta window. VCD_FORMAT_CHECKSUM = 0x02, // If this flag is specified, the encoder will output a JSON string // instead of the VCDIFF file format. If this flag is set, all other // flags have no effect. VCD_FORMAT_JSON = 0x04 }; typedef int VCDiffFormatExtensionFlags; } // namespace open_vcdiff #endif // OPEN_VCDIFF_FORMAT_EXTENSION_FLAGS_H_