uploaded original spice-server-0.12.4 and celt-0.5.1.3
[sdk/emulator/libs/spice-server.git] / client / glz_decoder_config.h
1 /*
2    Copyright (C) 2009 Red Hat, Inc.
3
4    This library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    This library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with this library; if not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #ifndef _H_GLZ_DECODER_CONFIG
19 #define _H_GLZ_DECODER_CONFIG
20
21 #include <exception>
22 #include <sstream>
23 #include <stdio.h>
24
25 #include <spice/types.h>
26 #include <spice/macros.h>
27 #include "common/lz_common.h"
28
29 class GlzException: public std::exception {
30 public:
31     GlzException(const std::string& str) : _mess (str) {}
32     virtual ~GlzException() throw () {}
33     virtual const char* what() const throw () {return _mess.c_str();}
34
35 private:
36     std::string _mess;
37 };
38
39 class GlzDecoderDebug {
40 public:
41     virtual ~GlzDecoderDebug() {}
42     virtual void error(const std::string& str) = 0;
43     virtual void warn(const std::string& str) = 0;
44     virtual void info(const std::string& str) = 0;
45 };
46
47 #ifdef RED_DEBUG
48
49 #define GLZ_ASSERT(debug, x) {                                  \
50     if (!(x)) {                                                 \
51         std::ostringstream os;                                  \
52         os << __FUNCTION__ << ": ASSERT " << #x << " failed\n"; \
53         (debug).error(os.str());                                \
54     }                                                           \
55 }
56 #else
57
58 #define GLZ_ASSERT(debug, x)
59
60 #endif
61
62 #define GLZ_DECODE_TO_RGB32
63
64 #endif  //_H_GLZ_DECODER_CONFIG