blob: f547380d6f9121e0bcc9999dccbaa2d9627f4379 [file] [log] [blame]
Jeff Thompsonef2d5a42013-08-22 19:09:24 -07001//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc.
2
3//Distributed under the Boost Software License, Version 1.0. (See accompanying
4//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
Jeff Thompson2491bd62013-10-15 17:10:24 -07006#ifndef NDNBOOST_UUID_CE6983AC753411DDA764247956D89593
7#define NDNBOOST_UUID_CE6983AC753411DDA764247956D89593
Jeff Thompson3d613fd2013-10-15 15:39:04 -07008#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -07009#pragma GCC system_header
10#endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -070011#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070012#pragma warning(push,1)
13#endif
14
15#include <string>
16
17namespace
18ndnboost
19 {
20 namespace
21 exception_detail
22 {
23 class
24 error_info_base
25 {
26 public:
27
28 virtual std::string name_value_string() const = 0;
29
30 protected:
31
32 virtual
33 ~error_info_base() throw()
34 {
35 }
36 };
37 }
38
39 template <class Tag,class T>
40 class
41 error_info:
42 public exception_detail::error_info_base
43 {
44 public:
45
46 typedef T value_type;
47
48 error_info( value_type const & value );
49 ~error_info() throw();
50
51 value_type const &
52 value() const
53 {
54 return value_;
55 }
56
57 value_type &
58 value()
59 {
60 return value_;
61 }
62
63 private:
64
65 std::string name_value_string() const;
66
67 value_type value_;
68 };
69 }
70
Jeff Thompson3d613fd2013-10-15 15:39:04 -070071#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
Jeff Thompsonef2d5a42013-08-22 19:09:24 -070072#pragma warning(pop)
73#endif
74#endif