Clementine-audio-player-Mac.../3rdparty/gloox/compressiondefault.h

81 lines
2.0 KiB
C++

/*
* Copyright (c) 2009 by Jakob Schroeter <js@camaya.net>
* This file is part of the gloox library. http://camaya.net/gloox
*
* This software is distributed under a license. The full license
* agreement can be found in the file LICENSE in this distribution.
* This software may not be copied, modified, sold or distributed
* other than expressed in the named license agreement.
*
* This software is distributed without any warranty.
*/
#ifndef COMPRESSIONDEFAULT_H__
#define COMPRESSIONDEFAULT_H__
#include "compressionbase.h"
namespace gloox
{
class CompressionDataHandler;
/**
* @brief This is an abstraction of the various Compression implementations.
*
* @author Jakob Schroeter <js@camaya.net>
* @since 1.0
*/
class GLOOX_API CompressionDefault : public CompressionBase
{
public:
/**
* Supported ctypes.
*/
enum Method
{
MethodZlib = 1, /**< Zlib compression. */
MethodLZW = 2 /**< LZW compression. */
};
/**
* Constructs a new compression wrapper.
* @param cdh The CompressionDataHandler to handle de/compressed data.
* @param method The desired compression method.
*/
CompressionDefault( CompressionDataHandler* cdh, Method method = MethodZlib );
/**
* Virtual Destructor.
*/
virtual ~CompressionDefault();
/**
* Returns an int holding the available compression types, ORed.
* @return An int holding the available compression types, ORed.
*/
static int types();
// reimplemented from CompressionBase
virtual bool init();
// reimplemented from CompressionBase
virtual void compress( const std::string& data );
// reimplemented from CompressionBase
virtual void decompress( const std::string& data );
// reimplemented from CompressionBase
virtual void cleanup();
private:
CompressionBase* m_impl;
};
}
#endif // COMPRESSIONDEFAULT_H__