- opensync plugin:
[barry.git] / src / error.cc
blob7c52e1c7c8d6241a8029b5aa7fc346f3ed6c7b09
1 ///
2 /// \file error.cc
3 /// Common exception classes for the Barry library
4 ///
6 /*
7 Copyright (C) 2005-2007, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #include "error.h"
23 #include <sstream>
24 #include <iomanip>
26 using namespace std;
28 namespace Barry {
30 std::string GetErrorString(int libusb_errno, const std::string &str)
32 ostringstream oss;
33 oss << "(" << setbase(10) << libusb_errno << ", "
34 << strerror(-libusb_errno) << "): "
35 << str;
36 return oss.str();
39 Error::Error(int libusb_errno, const std::string &str)
40 : std::runtime_error(GetErrorString(libusb_errno, str))
44 } // namespace Barry