81 lines
2.0 KiB
C++
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__
|