MyGUI
3.0.1
|
00001 00007 /* 00008 This file is part of MyGUI. 00009 00010 MyGUI is free software: you can redistribute it and/or modify 00011 it under the terms of the GNU Lesser General Public License as published by 00012 the Free Software Foundation, either version 3 of the License, or 00013 (at your option) any later version. 00014 00015 MyGUI is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU Lesser General Public License for more details. 00019 00020 You should have received a copy of the GNU Lesser General Public License 00021 along with MyGUI. If not, see <http://www.gnu.org/licenses/>. 00022 */ 00023 #include "MyGUI_Precompiled.h" 00024 #include "MyGUI_Exception.h" 00025 #include "MyGUI_Utility.h" 00026 00027 namespace MyGUI 00028 { 00029 00030 Exception::Exception(const std::string& _description, const std::string& _source, const char* _file, long _line ) : 00031 mDescription(_description), 00032 mSource(_source), 00033 mFile(_file), 00034 mLine(_line) 00035 { 00036 } 00037 00038 Exception::Exception(const Exception& _rhs) : 00039 mDescription(_rhs.mDescription), 00040 mSource(_rhs.mSource), 00041 mFile(_rhs.mFile), 00042 mLine(_rhs.mLine) 00043 { 00044 } 00045 00046 Exception& Exception::operator = (const Exception& _rhs) 00047 { 00048 mDescription = _rhs.mDescription; 00049 mSource = _rhs.mSource; 00050 mFile = _rhs.mFile; 00051 mLine = _rhs.mLine; 00052 mFullDesc = _rhs.mFullDesc; 00053 return *this; 00054 } 00055 00056 00057 const std::string& Exception::getFullDescription() const 00058 { 00059 if (mFullDesc.empty()) 00060 { 00061 if ( mLine > 0 ) 00062 { 00063 mFullDesc = utility::toString("MyGUI EXCEPTION : ", mDescription, " in ", mSource, " at ", mFile, " (line ", mLine, ")"); 00064 } 00065 else 00066 { 00067 mFullDesc = utility::toString("MyGUI EXCEPTION : ", mDescription, " in ", mSource); 00068 } 00069 } 00070 00071 return mFullDesc; 00072 } 00073 00074 } // namespace MyGUI