1
2/*
3 * Copyright 2010 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10#ifndef SkFlate_DEFINED
11#define SkFlate_DEFINED
12
13#include "SkTypes.h"
14
15class SkData;
16class SkWStream;
17class SkStream;
18
19/** \class SkFlate
20    A class to provide access to the flate compression algorithm.
21*/
22class SkFlate {
23public:
24    /** Indicates if the flate algorithm is available.
25     */
26    static bool HaveFlate();
27
28    /**
29     *  Use the flate compression algorithm to compress the data in src,
30     *  putting the result into dst.  Returns false if an error occurs.
31     */
32    static bool Deflate(SkStream* src, SkWStream* dst);
33
34    /**
35     *  Use the flate compression algorithm to compress the data in src,
36     *  putting the result into dst.  Returns false if an error occurs.
37     */
38    static bool Deflate(const void* src, size_t len, SkWStream* dst);
39
40    /**
41     *  Use the flate compression algorithm to compress the data,
42     *  putting the result into dst.  Returns false if an error occurs.
43     */
44    static bool Deflate(const SkData*, SkWStream* dst);
45
46    /** Use the flate compression algorithm to decompress the data in src,
47        putting the result into dst.  Returns false if an error occurs.
48     */
49    static bool Inflate(SkStream* src, SkWStream* dst);
50};
51
52#endif
53