Newer
Older
This file is part of SLL.
SLL is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
SLL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SLL; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*!
** Constructor
**
** @param i error code
** @param s error message
*/
Error::Error(int i, const string s)
{
val_ = i;
msg_ << s;
}
/*!
** Constructor by copy
**
** @param e
*/
Error::Error(const Error &e)
{
val_ = e.val_;
msg_ << e.msg_.str();
}
/*!
** Print and error msg on std err
**
*/
std::cerr << msg_.str() << "." << std::endl;
/*!
** @return a copy of message description
*/
string Error::message() const
{
return msg_.str();
}
/*!
** @return the error code
*/
/*!
** Set error code to @param v
*/
/*!
** Concatenate @param s before error message
*/
void Error::prefix(const string &s) {
string buf = s + msg_.str();
msg_.str("");
msg_ << buf;
}
/*!
** Concatenate @param s to errror message
*/
void Error::suffix(const string &s) {
msg_ << s;
}
/*!
** Copy operator
*/
Error &Error::operator=(const Error &rhs)
{
val_ = rhs.val_;
msg_.str("");
msg_ << rhs.msg_.str();
return *this;
}
/*!
** Print error message to @param o stream
*/
ostream &operator<<(ostream &o, const Error &e)
{
o << e.msg_.str();
return o;
}
/*!
** Concatenate @param val to errror message
*/
Error &operator<<(Error &e, int val)
{
e.msg_ << val;
return e;
}
/*!
** Concatenate @param s to errror message
*/
Error &operator<<(Error &e, const string &s)
{
e.msg_ << s;
return e;
}
/*!
** Concatenate @param s before error message
*/
Error &operator>>(Error &e, const string &s)
{
string buf = s + e.msg_.str();
e.msg_.str("");
e.msg_ << buf;
return e;
}