epoc32/include/stdapis/stlport/stdexcept
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
/*
williamr@4
     2
 * © Portions copyright (c) 2006-2007 Nokia Corporation.  All rights reserved.
williamr@4
     3
 *
williamr@4
     4
 * Copyright (c) 1996,1997
williamr@4
     5
 * Silicon Graphics Computer Systems, Inc.
williamr@4
     6
 *
williamr@4
     7
 * Copyright (c) 1999 
williamr@4
     8
 * Boris Fomitchev
williamr@4
     9
 *
williamr@4
    10
 * This material is provided "as is", with absolutely no warranty expressed
williamr@4
    11
 * or implied. Any use is at your own risk.
williamr@4
    12
 *
williamr@4
    13
 * Permission to use or copy this software for any purpose is hereby granted 
williamr@4
    14
 * without fee, provided the above notices are retained on all copies.
williamr@4
    15
 * Permission to modify the code and to distribute modified code is granted,
williamr@4
    16
 * provided the above notices are retained, and a notice that the code was
williamr@4
    17
 * modified is included with the above copyright notice.
williamr@4
    18
 *
williamr@4
    19
 */
williamr@4
    20
williamr@4
    21
williamr@4
    22
# if !defined (_STLP_OUTERMOST_HEADER_ID)
williamr@4
    23
#  define _STLP_OUTERMOST_HEADER_ID 0x63
williamr@4
    24
#  include <stl/_prolog.h>
williamr@4
    25
# elif (_STLP_OUTERMOST_HEADER_ID == 0x63) && ! defined (_STLP_DONT_POP_0x63)
williamr@4
    26
#  define _STLP_DONT_POP_0x63
williamr@4
    27
# endif
williamr@4
    28
williamr@4
    29
#ifndef _STLP_STDEXCEPT
williamr@4
    30
#define _STLP_STDEXCEPT 1
williamr@4
    31
williamr@4
    32
# ifdef _STLP_PRAGMA_ONCE
williamr@4
    33
#  pragma once
williamr@4
    34
# endif
williamr@4
    35
williamr@4
    36
#if defined (_STLP_USE_TRAP_LEAVE)
williamr@4
    37
williamr@4
    38
enum {
williamr@4
    39
  STDEX_bad_alloc			= -10000,
williamr@4
    40
  STDEX_logic_error			= -10001,
williamr@4
    41
  STDEX_runtime_error		= -10002,
williamr@4
    42
  STDEX_domain_error		= -10003,
williamr@4
    43
  STDEX_invalid_argument	= -10004,
williamr@4
    44
  STDEX_length_error		= -10005,
williamr@4
    45
  STDEX_out_of_range		= -10006,
williamr@4
    46
  STDEX_range_error			= -10007,
williamr@4
    47
  STDEX_overflow_error		= -10008,
williamr@4
    48
  STDEX_underflow_error		= -10009
williamr@4
    49
};
williamr@4
    50
williamr@4
    51
// User may override this
williamr@4
    52
#ifndef STDEX_REPORT_EXCEPTION
williamr@4
    53
# define STDEX_REPORT_EXCEPTION(x) 
williamr@4
    54
#endif
williamr@4
    55
williamr@4
    56
#endif
williamr@4
    57
williamr@4
    58
# if !defined(_STLP_STDEXCEPT_SEEN) && \
williamr@4
    59
   (!defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE))
williamr@4
    60
williamr@4
    61
#  define _STLP_STDEXCEPT_SEEN 1
williamr@4
    62
williamr@4
    63
#  include <exception>
williamr@4
    64
williamr@4
    65
#if defined(_STLP_USE_EXCEPTIONS) || \
williamr@4
    66
    !(defined(_MIPS_SIM) && defined(_ABIO32) && _MIPS_SIM == _ABIO32)
williamr@4
    67
williamr@4
    68
# include <cstring>
williamr@4
    69
williamr@4
    70
#ifndef _STLP_INTERNAL_ALLOC_H
williamr@4
    71
# include <stl/_alloc.h>
williamr@4
    72
#endif
williamr@4
    73
williamr@4
    74
#ifndef _STLP_STRING_FWD_H
williamr@4
    75
# include <stl/_string_fwd.h>
williamr@4
    76
#endif
williamr@4
    77
williamr@4
    78
# define _STLP_OWN_STDEXCEPT 1
williamr@4
    79
williamr@4
    80
_STLP_BEGIN_NAMESPACE
williamr@4
    81
williamr@4
    82
# if   ! defined (_STLP_NO_EXCEPTION_HEADER)
williamr@4
    83
# if !defined(_STLP_EXCEPTION_BASE) && !defined(_STLP_BROKEN_EXCEPTION_CLASS) && defined (_STLP_USE_NAMESPACES) && defined (_STLP_USE_OWN_NAMESPACE)
williamr@4
    84
using _STLP_VENDOR_EXCEPT_STD::exception;
williamr@4
    85
# endif
williamr@4
    86
# endif
williamr@4
    87
#  define _STLP_EXCEPTION_BASE exception
williamr@4
    88
williamr@4
    89
#ifdef __SYMBIAN32__
williamr@4
    90
class __Named_exception : public _STLP_EXCEPTION_BASE {
williamr@4
    91
#else
williamr@4
    92
class _STLP_CLASS_DECLSPEC __Named_exception : public _STLP_EXCEPTION_BASE {
williamr@4
    93
#endif //__SYMBIAN32__
williamr@4
    94
public:
williamr@4
    95
  _STLP_DECLSPEC __Named_exception(const string& __str) 
williamr@4
    96
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
    97
    ;
williamr@4
    98
  _STLP_DECLSPEC const char* what() const _STLP_NOTHROW_INHERENTLY;
williamr@4
    99
  _STLP_DECLSPEC ~__Named_exception() _STLP_NOTHROW_INHERENTLY;
williamr@4
   100
# else
williamr@4
   101
  {
williamr@4
   102
    strncpy(_M_name, __get_c_string(__str), _S_bufsize);
williamr@4
   103
    _M_name[_S_bufsize - 1] = '\0';
williamr@4
   104
  }
williamr@4
   105
  const char* what() const _STLP_NOTHROW_INHERENTLY { return _M_name; }
williamr@4
   106
# endif
williamr@4
   107
williamr@4
   108
private:
williamr@4
   109
  enum { _S_bufsize = 256 };
williamr@4
   110
  char _M_name[_S_bufsize];
williamr@4
   111
};
williamr@4
   112
williamr@4
   113
#ifdef __SYMBIAN32__
williamr@4
   114
class logic_error : public __Named_exception {
williamr@4
   115
#else
williamr@4
   116
class _STLP_CLASS_DECLSPEC logic_error : public __Named_exception {
williamr@4
   117
#endif
williamr@4
   118
public:
williamr@4
   119
  _STLP_DECLSPEC logic_error(const string& __s)
williamr@4
   120
#ifdef __SYMBIAN32__
williamr@4
   121
    ;
williamr@4
   122
#else
williamr@4
   123
   : __Named_exception(__s) {}
williamr@4
   124
#endif
williamr@4
   125
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   126
  _STLP_DECLSPEC ~logic_error() _STLP_NOTHROW_INHERENTLY;
williamr@4
   127
# endif
williamr@4
   128
};
williamr@4
   129
williamr@4
   130
#ifdef __SYMBIAN32__
williamr@4
   131
class runtime_error : public __Named_exception {
williamr@4
   132
#else
williamr@4
   133
class _STLP_CLASS_DECLSPEC runtime_error : public __Named_exception {
williamr@4
   134
#endif
williamr@4
   135
public:
williamr@4
   136
  _STLP_DECLSPEC runtime_error(const string& __s)
williamr@4
   137
#ifdef __SYMBIAN32__
williamr@4
   138
    ;
williamr@4
   139
#else
williamr@4
   140
   : __Named_exception(__s) {}
williamr@4
   141
#endif
williamr@4
   142
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   143
  _STLP_DECLSPEC ~runtime_error() _STLP_NOTHROW_INHERENTLY;
williamr@4
   144
# endif
williamr@4
   145
};
williamr@4
   146
williamr@4
   147
#ifdef __SYMBIAN32__
williamr@4
   148
class domain_error : public logic_error {
williamr@4
   149
#else
williamr@4
   150
class _STLP_CLASS_DECLSPEC domain_error : public logic_error {
williamr@4
   151
#endif
williamr@4
   152
public:
williamr@4
   153
  _STLP_DECLSPEC domain_error(const string& __arg)
williamr@4
   154
#ifdef __SYMBIAN32__
williamr@4
   155
    ;
williamr@4
   156
#else
williamr@4
   157
   : logic_error(__arg) {}
williamr@4
   158
#endif
williamr@4
   159
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   160
  _STLP_DECLSPEC ~domain_error() _STLP_NOTHROW_INHERENTLY;
williamr@4
   161
# endif
williamr@4
   162
};
williamr@4
   163
williamr@4
   164
#ifdef __SYMBIAN32__
williamr@4
   165
class invalid_argument : public logic_error {
williamr@4
   166
#else
williamr@4
   167
class _STLP_CLASS_DECLSPEC invalid_argument : public logic_error {
williamr@4
   168
#endif
williamr@4
   169
public:
williamr@4
   170
  _STLP_DECLSPEC invalid_argument(const string& __arg)
williamr@4
   171
#ifdef __SYMBIAN32__
williamr@4
   172
    ;
williamr@4
   173
#else
williamr@4
   174
   : logic_error(__arg) {}
williamr@4
   175
#endif
williamr@4
   176
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   177
  _STLP_DECLSPEC ~invalid_argument() _STLP_NOTHROW_INHERENTLY;
williamr@4
   178
# endif
williamr@4
   179
};
williamr@4
   180
williamr@4
   181
#ifdef __SYMBIAN32__
williamr@4
   182
class length_error : public logic_error {
williamr@4
   183
#else
williamr@4
   184
class _STLP_CLASS_DECLSPEC length_error : public logic_error {
williamr@4
   185
#endif
williamr@4
   186
public:
williamr@4
   187
  _STLP_DECLSPEC length_error(const string& __arg)
williamr@4
   188
#ifdef __SYMBIAN32__
williamr@4
   189
    ;
williamr@4
   190
#else
williamr@4
   191
   : logic_error(__arg) {}
williamr@4
   192
#endif
williamr@4
   193
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   194
  _STLP_DECLSPEC ~length_error() _STLP_NOTHROW_INHERENTLY;
williamr@4
   195
# endif
williamr@4
   196
};
williamr@4
   197
williamr@4
   198
#ifdef __SYMBIAN32__
williamr@4
   199
class out_of_range : public logic_error {
williamr@4
   200
#else
williamr@4
   201
class _STLP_CLASS_DECLSPEC out_of_range : public logic_error {
williamr@4
   202
#endif
williamr@4
   203
public:
williamr@4
   204
  _STLP_DECLSPEC out_of_range(const string& __arg)
williamr@4
   205
#ifdef __SYMBIAN32__
williamr@4
   206
    ;
williamr@4
   207
#else
williamr@4
   208
   : logic_error(__arg) {}
williamr@4
   209
#endif
williamr@4
   210
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   211
  _STLP_DECLSPEC ~out_of_range() _STLP_NOTHROW_INHERENTLY;
williamr@4
   212
# endif
williamr@4
   213
};
williamr@4
   214
williamr@4
   215
#ifdef __SYMBIAN32__
williamr@4
   216
class range_error : public runtime_error {
williamr@4
   217
#else
williamr@4
   218
class _STLP_CLASS_DECLSPEC range_error : public runtime_error {
williamr@4
   219
#endif
williamr@4
   220
public:
williamr@4
   221
  _STLP_DECLSPEC range_error(const string& __arg)
williamr@4
   222
#ifdef __SYMBIAN32__
williamr@4
   223
    ;
williamr@4
   224
#else
williamr@4
   225
   : runtime_error(__arg) {}
williamr@4
   226
#endif
williamr@4
   227
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   228
  _STLP_DECLSPEC ~range_error() _STLP_NOTHROW_INHERENTLY;
williamr@4
   229
# endif
williamr@4
   230
};
williamr@4
   231
williamr@4
   232
#ifdef __SYMBIAN32__
williamr@4
   233
class overflow_error : public runtime_error {
williamr@4
   234
#else
williamr@4
   235
class _STLP_CLASS_DECLSPEC overflow_error : public runtime_error {
williamr@4
   236
#endif
williamr@4
   237
public:
williamr@4
   238
  _STLP_DECLSPEC overflow_error(const string& __arg)
williamr@4
   239
#ifdef __SYMBIAN32__
williamr@4
   240
    ;
williamr@4
   241
#else
williamr@4
   242
   : runtime_error(__arg) {}
williamr@4
   243
#endif
williamr@4
   244
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   245
  _STLP_DECLSPEC ~overflow_error() _STLP_NOTHROW_INHERENTLY;
williamr@4
   246
# endif
williamr@4
   247
};
williamr@4
   248
williamr@4
   249
#ifdef __SYMBIAN32__
williamr@4
   250
class underflow_error : public runtime_error {
williamr@4
   251
#else
williamr@4
   252
class _STLP_CLASS_DECLSPEC underflow_error : public runtime_error {
williamr@4
   253
#endif
williamr@4
   254
public:
williamr@4
   255
  _STLP_DECLSPEC underflow_error(const string& __arg)
williamr@4
   256
#ifdef __SYMBIAN32__
williamr@4
   257
    ;
williamr@4
   258
#else
williamr@4
   259
   : runtime_error(__arg) {}
williamr@4
   260
#endif
williamr@4
   261
# ifdef _STLP_OWN_IOSTREAMS
williamr@4
   262
  _STLP_DECLSPEC ~underflow_error() _STLP_NOTHROW_INHERENTLY;
williamr@4
   263
# endif
williamr@4
   264
};
williamr@4
   265
williamr@4
   266
_STLP_END_NAMESPACE
williamr@4
   267
williamr@4
   268
#endif /* Not o32, and no exceptions */
williamr@4
   269
# endif /* _STLP_STDEXCEPT_SEEN */
williamr@4
   270
williamr@4
   271
williamr@4
   272
#if defined (_STLP_USE_NATIVE_STDEXCEPT)
williamr@4
   273
#  include _STLP_NATIVE_HEADER(stdexcept)
williamr@4
   274
# endif
williamr@4
   275
williamr@4
   276
#endif /* _STLP_STDEXCEPT */
williamr@4
   277
williamr@4
   278
# if (_STLP_OUTERMOST_HEADER_ID == 0x63)
williamr@4
   279
#  if ! defined (_STLP_DONT_POP_0x63)
williamr@4
   280
#   include <stl/_epilog.h>
williamr@4
   281
#   undef  _STLP_OUTERMOST_HEADER_ID
williamr@4
   282
#   endif
williamr@4
   283
#   undef  _STLP_DONT_POP_0x63
williamr@4
   284
# endif
williamr@4
   285
williamr@4
   286
williamr@4
   287
// Local Variables:
williamr@4
   288
// mode:C++
williamr@4
   289
// End:
williamr@4
   290