astra_exception.h
Go to the documentation of this file.
1 /*
2  * Software License Agreement (BSD License)
3  *
4  * Copyright (c) 2011, Willow Garage, Inc.
5  * Copyright (c) 2016, Orbbec Ltd.
6  * Tim Liu <liuhua@orbbec.com>
7  *
8  * All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  *
14  * * Redistributions of source code must retain the above copyright
15  * notice, this list of conditions and the following disclaimer.
16  * * Redistributions in binary form must reproduce the above
17  * copyright notice, this list of conditions and the following
18  * disclaimer in the documentation and/or other materials provided
19  * with the distribution.
20  * * Neither the name of Willow Garage, Inc. nor the names of its
21  * contributors may be used to endorse or promote products derived
22  * from this software without specific prior written permission.
23  *
24  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35  * POSSIBILITY OF SUCH DAMAGE.
36  *
37  */
38 #ifndef __ASTRA_EXCEPTION__
39 #define __ASTRA_EXCEPTION__
40 
41 #include <cstdarg>
42 #include <cstdio>
43 #include <exception>
44 #include <string>
45 
46 #if defined _WIN32 && defined _MSC_VER
47 # define __PRETTY_FUNCTION__ __FUNCTION__
48 #endif
49 #define THROW_OPENNI_EXCEPTION(format,...) throwOpenNIException( __PRETTY_FUNCTION__, __FILE__, __LINE__, format , ##__VA_ARGS__ )
50 
51 namespace astra_wrapper
52 {
58 class AstraException : public std::exception
59 {
60 public:
61  AstraException(const std::string& function_name,
62  const std::string& file_name,
63  unsigned line_number,
64  const std::string& message);
65 
66  virtual ~AstraException() throw();
67  AstraException & operator=(const AstraException& exception);
68  virtual const char* what() const throw();
69 
70  const std::string& getFunctionName() const;
71  const std::string& getFileName() const;
72  unsigned getLineNumber() const;
73 
74 protected:
75  std::string function_name_;
76  std::string file_name_;
77  unsigned line_number_;
78  std::string message_;
79  std::string message_long_;
80 };
81 
82 inline void throwOpenNIException(const char* function, const char* file, unsigned line, const char* format, ...)
83 {
84  static char msg[1024];
85  va_list args;
86  va_start(args, format);
87  vsprintf(msg, format, args);
88  throw AstraException(function, file, line, msg);
89 }
90 } // namespace astra_camera
91 #endif
General exception class.
const std::string & getFileName() const
virtual const char * what() const
const std::string & getFunctionName() const
AstraException & operator=(const AstraException &exception)
AstraException(const std::string &function_name, const std::string &file_name, unsigned line_number, const std::string &message)
void throwOpenNIException(const char *function, const char *file, unsigned line, const char *format,...)


astra_camera
Author(s): Tim Liu
autogenerated on Wed Dec 16 2020 03:54:34