00001 00002 // -*- mode: c++; c-basic-offset:4 -*- 00003 00004 // This file is part of libdap, A C++ implementation of the OPeNDAP Data 00005 // Access Protocol. 00006 00007 // Copyright (c) 2002,2003 OPeNDAP, Inc. 00008 // Author: James Gallagher <jgallagher@opendap.org> 00009 // 00010 // This library is free software; you can redistribute it and/or 00011 // modify it under the terms of the GNU Lesser General Public 00012 // License as published by the Free Software Foundation; either 00013 // version 2.1 of the License, or (at your option) any later version. 00014 // 00015 // This library 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 GNU 00018 // Lesser General Public License for more details. 00019 // 00020 // You should have received a copy of the GNU Lesser General Public 00021 // License along with this library; if not, write to the Free Software 00022 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00023 // 00024 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112. 00025 00026 // (c) COPYRIGHT URI/MIT 1999 00027 // Please read the full copyright statement in the file COPYRIGHT_URI. 00028 // 00029 // Authors: 00030 // jhrg,jimg James Gallagher <jgallagher@gso.uri.edu> 00031 00032 // Implementation for the InternalErr class. 00033 00034 00035 #include "config.h" 00036 00037 static char rcsid[] not_used = 00038 {"$Id: InternalErr.cc 16759 2007-06-26 19:37:30Z jimg $" 00039 }; 00040 00041 #include <stdio.h> 00042 00043 #include <string> 00044 #include <sstream> 00045 00046 #include "InternalErr.h" 00047 #include "util.h" 00048 00049 using std::endl; 00050 using std::ostringstream; 00051 00052 InternalErr::InternalErr() : Error() 00053 { 00054 _error_code = internal_error; 00055 } 00056 00057 InternalErr::InternalErr(const string &msg) : Error() 00058 { 00059 _error_code = internal_error; 00060 _error_message = ""; 00061 _error_message += "An internal error was encountered:\n"; 00062 _error_message += msg + "\n"; 00063 _error_message += "Please report this to support@opendap.org\n"; 00064 } 00065 00066 00067 //InternalErr::InternalErr(string msg, string file, int line) 00068 // : Error(unknown_error, msg) 00069 InternalErr::InternalErr(const string &file, const int &line, const string &msg) : Error() 00070 { 00071 _error_code = internal_error; 00072 _error_message = ""; 00073 _error_message += "An internal error was encountered in " + file + " at line "; 00074 // Jose Garcia. Next we append line to the string _error_code. 00075 // This function is defined in util.h 00076 append_long_to_string(line, 10, _error_message); 00077 _error_message += ":\n"; 00078 _error_message += msg + "\n"; 00079 _error_message += "Please report this to support@opendap.org\n"; 00080 } 00081 #if 0 00082 InternalErr::InternalErr(string msg, ProgramType pt, char *pgm) 00083 : Error(unknown_error, msg, pt, pgm) 00084 { 00085 ostringstream oss; 00086 oss << "An internal error was encountered:" << endl 00087 << msg << endl 00088 << "Please report this to support@opendap.org"; 00089 _error_message = oss.str(); 00090 } 00091 #endif 00092 InternalErr::InternalErr(const InternalErr ©_from) 00093 : Error(copy_from) 00094 {} 00095 00096 InternalErr::~InternalErr() 00097 {} 00098 00102 bool 00103 InternalErr::OK() 00104 { 00105 return Error::OK(); 00106 }