c9a43f111f6ca8748406f9b7dfdc66af580286a9
[senf.git] / Utils / Exception.cc
1 // $Id$
2 //
3 // Copyright (C) 2006 
4 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
5 // Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
6 //     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
7 //
8 // This program is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (at your option) any later version.
12 //
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the
20 // Free Software Foundation, Inc.,
21 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
23 // Definition of non-inline non-template functions
24
25 #include "Exception.hh"
26 //#include "Exception.ih"
27
28 // Custom includes
29 #include <cstring>
30 #include <sstream>
31
32 #define prefix_
33 ///////////////////////////////cc.p////////////////////////////////////////
34
35 prefix_ void satcom::lib::SystemException::init()
36 {
37     std::stringstream s;
38     if (where)
39         s << where << ": ";
40     s << "(" << err << ") " << std::strerror(err);
41     buffer_ = s.str();
42 }
43
44 prefix_ char const * satcom::lib::SystemException::what()
45     const throw()
46 {
47     return buffer_.c_str();
48 }
49
50 ///////////////////////////////cc.e////////////////////////////////////////
51 #undef prefix_
52
53 \f
54 // Local Variables:
55 // mode: c++
56 // c-file-style: "satcom"
57 // End: