DeltaCodec 1.1.0

DeltaCodec 1.1.0

Ricardo Pereira 维护。



DeltaCodec

Cocoa VCDiff 解码器

使用 Xdelta 版本 3,这是一个使用 VCDIFF/RFC 3284 流的 delta 压缩的 C 库。

Objective-C 示例

@import DeltaCodec;

NSError *error;
ARTDeltaCodec *codec = [[ARTDeltaCodec alloc] init];
[codec setBase:baseData withId:@"m1"];
NSData *outputData = [codec applyDelta:deltaData deltaId:@"m2" baseId:@"m1" error:&error];

// Output data is an utf-8 string:
NSString *output = [[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding];

Swift 示例

import DeltaCodec

let codec = ARTDeltaCodec()
codec.setBase(baseData, withId: "m1")

do {
    let outputData = try codec.applyDelta(deltaData, deltaId: "m2", baseId: "m1")
    // Output data is an utf-8 string:
    let output = String(data: outputData, encoding: .utf8)
}
catch {
    print(error)
}

API 参考

无状态

类 isDelta

声明

Objective-C

+(BOOL)isDelta:delta;

Swift

class func isDelta(_ delta: Data) -> Bool

参数:

  • delta: NSData/Data (是一个二进制编码为 vcdiff,如RFC 3284中规定的。)

返回值:

返回一个 BOOL/Boolean 值,表示它是否是有效的差分。

类 applyDelta

声明

Objective-C

+(NSData *)applyDelta:current previous:previous error:error;

Swift

class func applyDelta(_ current: Data, previous: Data) -> Data (throws)

参数:

  • current: NSData/Data (是需要转换为目标的二进制编码信息。它按照RFC 3284编解码为vcdiff。)
  • previous: NSData/Data (需要转换成目标的字节数组。)
  • error: NSError (Objective-C仅适用) (当出错时的错误对象。它可为空,所以是可选的。)

返回值:

返回一个目标的 NSData/Data 对象。它可能返回 nil

状态保存

setBase

声明

Objective-C

-(void)setBase:base withId:baseId;

Swift

func setBase(_ base: Data, withId baseId: Data)

参数:

  • base: NSData/Data (是要转换为目标的数据簇。这可能是旧版本、缓存版本。)
  • baseId: NSString/String (是基的标识符。)

返回值:

不返回任何内容。

applyDelta

声明

Objective-C

-(NSData *)applyDelta:delta deltaId:deltaId baseId:baseId error:error;

Swift

func applyDelta(_ delta: Data, deltaId deltaId: String, baseId baseId: String) -> Data (throws)

参数:

  • delta: NSData/Data (是需要转换源到目标的信息的二进制编码。它以 RFC 3284 中指定的 vcdiff 进行编码。)
  • deltaId: NSString/String (是 delta 的标识符。)
  • baseId NSString/String (是用于验证是否与当前指定的基匹配的基的标识符。)
  • error: NSError (Objective-C仅适用) (当出错时的错误对象。它可为空,所以是可选的。)

返回值:

返回目标的一个 NSData 对象。它可能返回 nil

致谢:

delta 将成为新的 base