~cosme/ubuntu/precise/freeimage/freeimage-3.15.1

« back to all changes in this revision

Viewing changes to Source/OpenEXR/Iex/IexMacros.h

  • Committer: Bazaar Package Importer
  • Author(s): Cosme Domínguez Díaz
  • Date: 2010-07-20 13:42:15 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20100720134215-xt1454zaedv3b604
Tags: 3.13.1-0ubuntu1
* New upstream release. Closes: (LP: #607800)
 - Updated debian/freeimage-get-orig-source script.
 - Removing no longer necessary debian/patches/* and
   the patch system in debian/rules.
 - Updated debian/rules to work with the new Makefiles.
 - Drop from -O3 to -O2 and use lzma compression saves
   ~10 MB of free space. 
* lintian stuff
 - fixed debhelper-but-no-misc-depends
 - fixed ldconfig-symlink-missing-for-shlib

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
///////////////////////////////////////////////////////////////////////////
2
 
//
3
 
// Copyright (c) 2002, Industrial Light & Magic, a division of Lucas
4
 
// Digital Ltd. LLC
5
 
// 
6
 
// All rights reserved.
7
 
// 
8
 
// Redistribution and use in source and binary forms, with or without
9
 
// modification, are permitted provided that the following conditions are
10
 
// met:
11
 
// *       Redistributions of source code must retain the above copyright
12
 
// notice, this list of conditions and the following disclaimer.
13
 
// *       Redistributions in binary form must reproduce the above
14
 
// copyright notice, this list of conditions and the following disclaimer
15
 
// in the documentation and/or other materials provided with the
16
 
// distribution.
17
 
// *       Neither the name of Industrial Light & Magic nor the names of
18
 
// its contributors may be used to endorse or promote products derived
19
 
// from this software without specific prior written permission. 
20
 
// 
21
 
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
 
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
 
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
 
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
 
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
 
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
 
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
 
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
 
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
 
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
 
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
 
//
33
 
///////////////////////////////////////////////////////////////////////////
34
 
 
35
 
 
36
 
 
37
 
#ifndef INCLUDED_IEXMACROS_H
38
 
#define INCLUDED_IEXMACROS_H
39
 
 
40
 
//--------------------------------------------------------------------
41
 
//
42
 
//      Macros which make throwing exceptions more convenient
43
 
//
44
 
//--------------------------------------------------------------------
45
 
 
46
 
#include <sstream>
47
 
 
48
 
 
49
 
//----------------------------------------------------------------------------
50
 
// A macro to throw exceptions whose text is assembled using stringstreams.
51
 
//
52
 
// Example:
53
 
//
54
 
//      THROW (InputExc, "Syntax error in line " << line ", " << file << ".");
55
 
//      
56
 
//----------------------------------------------------------------------------
57
 
 
58
 
#define THROW(type, text)       \
59
 
    do                          \
60
 
    {                           \
61
 
        std::stringstream s;    \
62
 
        s << text;              \
63
 
        throw type (s);         \
64
 
    }                           \
65
 
    while (0)
66
 
 
67
 
 
68
 
//----------------------------------------------------------------------------
69
 
// Macros to add to or to replace the text of an exception.
70
 
// The new text is assembled using stringstreams.
71
 
//
72
 
// Examples:
73
 
//
74
 
// Append to end of an exception's text:
75
 
//
76
 
//      catch (BaseExc &e)
77
 
//      {
78
 
//          APPEND_EXC (e, " Directory " << name << " does not exist.");
79
 
//          throw;
80
 
//      }
81
 
//
82
 
// Replace an exception's text:
83
 
//
84
 
//      catch (BaseExc &e)
85
 
//      {
86
 
//          REPLACE_EXC (e, "Directory " << name << " does not exist. " << e);
87
 
//          throw;
88
 
//      }
89
 
//----------------------------------------------------------------------------
90
 
 
91
 
#define APPEND_EXC(exc, text)   \
92
 
    do                          \
93
 
    {                           \
94
 
        std::stringstream s;    \
95
 
        s << text;              \
96
 
        exc.append (s);         \
97
 
    }                           \
98
 
    while (0)
99
 
 
100
 
#define REPLACE_EXC(exc, text)  \
101
 
    do                          \
102
 
    {                           \
103
 
        std::stringstream s;    \
104
 
        s << text;              \
105
 
        exc.assign (s);         \
106
 
    }                           \
107
 
    while (0)
108
 
 
109
 
 
110
 
//-------------------------------------------------------------
111
 
// A macro to throw ErrnoExc exceptions whose text is assembled
112
 
// using stringstreams:
113
 
//
114
 
// Example:
115
 
//
116
 
//      THROW_ERRNO ("Cannot open file " << name << " (%T).");
117
 
//
118
 
//-------------------------------------------------------------
119
 
 
120
 
#define THROW_ERRNO(text)               \
121
 
    do                                  \
122
 
    {                                   \
123
 
        std::stringstream s;            \
124
 
        s << text;                      \
125
 
        ::Iex::throwErrnoExc (s.str()); \
126
 
    }                                   \
127
 
    while (0)
128
 
 
129
 
 
130
 
//-------------------------------------------------------------
131
 
// A macro to throw exceptions if an assertion is false.
132
 
//
133
 
// Example:
134
 
//
135
 
//      ASSERT (NullExc, ptr != NULL, "Null pointer" );
136
 
//
137
 
//-------------------------------------------------------------
138
 
 
139
 
#define ASSERT(assertion, type, text)   \
140
 
    do                                  \
141
 
    {                                   \
142
 
        if( (assertion) == false )      \
143
 
            THROW( type, text );        \
144
 
    }                                   \
145
 
    while (0)
146
 
 
147
 
 
148
 
#endif
 
1
///////////////////////////////////////////////////////////////////////////
 
2
//
 
3
// Copyright (c) 2002, Industrial Light & Magic, a division of Lucas
 
4
// Digital Ltd. LLC
 
5
// 
 
6
// All rights reserved.
 
7
// 
 
8
// Redistribution and use in source and binary forms, with or without
 
9
// modification, are permitted provided that the following conditions are
 
10
// met:
 
11
// *       Redistributions of source code must retain the above copyright
 
12
// notice, this list of conditions and the following disclaimer.
 
13
// *       Redistributions in binary form must reproduce the above
 
14
// copyright notice, this list of conditions and the following disclaimer
 
15
// in the documentation and/or other materials provided with the
 
16
// distribution.
 
17
// *       Neither the name of Industrial Light & Magic nor the names of
 
18
// its contributors may be used to endorse or promote products derived
 
19
// from this software without specific prior written permission. 
 
20
// 
 
21
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
22
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
23
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
24
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
25
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
26
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
27
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
28
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
29
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
30
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
31
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
32
//
 
33
///////////////////////////////////////////////////////////////////////////
 
34
 
 
35
 
 
36
 
 
37
#ifndef INCLUDED_IEXMACROS_H
 
38
#define INCLUDED_IEXMACROS_H
 
39
 
 
40
//--------------------------------------------------------------------
 
41
//
 
42
//      Macros which make throwing exceptions more convenient
 
43
//
 
44
//--------------------------------------------------------------------
 
45
 
 
46
#include <sstream>
 
47
 
 
48
 
 
49
//----------------------------------------------------------------------------
 
50
// A macro to throw exceptions whose text is assembled using stringstreams.
 
51
//
 
52
// Example:
 
53
//
 
54
//      THROW (InputExc, "Syntax error in line " << line ", " << file << ".");
 
55
//      
 
56
//----------------------------------------------------------------------------
 
57
 
 
58
#define THROW(type, text)       \
 
59
    do                          \
 
60
    {                           \
 
61
        std::stringstream s;    \
 
62
        s << text;              \
 
63
        throw type (s);         \
 
64
    }                           \
 
65
    while (0)
 
66
 
 
67
 
 
68
//----------------------------------------------------------------------------
 
69
// Macros to add to or to replace the text of an exception.
 
70
// The new text is assembled using stringstreams.
 
71
//
 
72
// Examples:
 
73
//
 
74
// Append to end of an exception's text:
 
75
//
 
76
//      catch (BaseExc &e)
 
77
//      {
 
78
//          APPEND_EXC (e, " Directory " << name << " does not exist.");
 
79
//          throw;
 
80
//      }
 
81
//
 
82
// Replace an exception's text:
 
83
//
 
84
//      catch (BaseExc &e)
 
85
//      {
 
86
//          REPLACE_EXC (e, "Directory " << name << " does not exist. " << e);
 
87
//          throw;
 
88
//      }
 
89
//----------------------------------------------------------------------------
 
90
 
 
91
#define APPEND_EXC(exc, text)   \
 
92
    do                          \
 
93
    {                           \
 
94
        std::stringstream s;    \
 
95
        s << text;              \
 
96
        exc.append (s);         \
 
97
    }                           \
 
98
    while (0)
 
99
 
 
100
#define REPLACE_EXC(exc, text)  \
 
101
    do                          \
 
102
    {                           \
 
103
        std::stringstream s;    \
 
104
        s << text;              \
 
105
        exc.assign (s);         \
 
106
    }                           \
 
107
    while (0)
 
108
 
 
109
 
 
110
//-------------------------------------------------------------
 
111
// A macro to throw ErrnoExc exceptions whose text is assembled
 
112
// using stringstreams:
 
113
//
 
114
// Example:
 
115
//
 
116
//      THROW_ERRNO ("Cannot open file " << name << " (%T).");
 
117
//
 
118
//-------------------------------------------------------------
 
119
 
 
120
#define THROW_ERRNO(text)               \
 
121
    do                                  \
 
122
    {                                   \
 
123
        std::stringstream s;            \
 
124
        s << text;                      \
 
125
        ::Iex::throwErrnoExc (s.str()); \
 
126
    }                                   \
 
127
    while (0)
 
128
 
 
129
 
 
130
//-------------------------------------------------------------
 
131
// A macro to throw exceptions if an assertion is false.
 
132
//
 
133
// Example:
 
134
//
 
135
//      ASSERT (NullExc, ptr != NULL, "Null pointer" );
 
136
//
 
137
//-------------------------------------------------------------
 
138
 
 
139
#define ASSERT(assertion, type, text)   \
 
140
    do                                  \
 
141
    {                                   \
 
142
        if( (assertion) == false )      \
 
143
            THROW( type, text );        \
 
144
    }                                   \
 
145
    while (0)
 
146
 
 
147
 
 
148
#endif