MyGUI 3.0.1
MyGUI_Exception.cpp
Go to the documentation of this file.
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