diff --git a/src/haxe/zip/Compress.hx b/src/haxe/zip/Compress.hx new file mode 100644 index 00000000..e5ed5582 --- /dev/null +++ b/src/haxe/zip/Compress.hx @@ -0,0 +1,55 @@ +/* + * Copyright (C)2005-2015 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ +package haxe.zip; + +@:coreApi +class Compress { + + private var level : Int; + + public function new( level : Int ) : Void { + this.level = level; + } + + public function execute( src : haxe.io.Bytes, srcPos : Int, dst : haxe.io.Bytes, dstPos : Int ) : { done : Bool, read : Int, write : Int } { + var input = src.sub( srcPos , src.length - srcPos ); + var data = run( input , level ); + dst.blit( dstPos , data , 0 , data.length ); + + return { + done: true, + read: input.length, + write: data.length + }; + } + + public function setFlushMode( f : FlushMode ) : Void { + } + + public function close() : Void { + } + + public static function run( s : haxe.io.Bytes, level : Int ) : haxe.io.Bytes { + var b = js.node.Zlib.deflateSync( js.node.buffer.Buffer.hxFromBytes( s ) , { level : level } ); + return b.hxToBytes(); + } +} \ No newline at end of file diff --git a/src/haxe/zip/Uncompress.hx b/src/haxe/zip/Uncompress.hx new file mode 100644 index 00000000..aa13a59c --- /dev/null +++ b/src/haxe/zip/Uncompress.hx @@ -0,0 +1,46 @@ +/* + * Copyright (C)2005-2015 Haxe Foundation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ +package haxe.zip; + +@:coreApi +class Uncompress { + + public function new( ?windowBits : Int ) : Void { + throw "Not implemented for this platform"; + } + + public function execute( src : haxe.io.Bytes, srcPos : Int, dst : haxe.io.Bytes, dstPos : Int ) : { done : Bool, read : Int, write : Int } { + return null; + } + + public function setFlushMode( f : FlushMode ) : Void { + } + + public function close() : Void { + } + + public static function run( src : haxe.io.Bytes, ?bufsize : Int ) : haxe.io.Bytes { + var b = js.node.Zlib.inflateSync( js.node.buffer.Buffer.hxFromBytes( src ) ); + return b.hxToBytes(); + } + +} \ No newline at end of file