00001 // API exception implementation -*- C++ -*- 00002 00003 // $Id: api_exception.cc 347 2008-02-06 15:20:01Z schilly $ 00004 // Copyright (C) 2003 Hermann Schichl 00005 // 00006 // This file is part of the COCONUT API. This library 00007 // is free software; you can redistribute it and/or modify it under the 00008 // terms of the Library GNU General Public License as published by the 00009 // Free Software Foundation; either version 2, or (at your option) 00010 // any later version. 00011 00012 // This library is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // Library GNU General Public License for more details. 00016 00017 // As a special exception, you may use this file as part of a free software 00018 // library without restriction. Specifically, if other files instantiate 00019 // templates or use macros or inline functions from this file, or you compile 00020 // this file and link it with other files to produce an executable, this 00021 // file does not by itself cause the resulting executable to be covered by 00022 // the Library GNU General Public License. This exception does not however 00023 // invalidate any other reasons why the executable file might be covered by 00024 // the Library GNU General Public License. 00025 00028 #include <coconut_config.h> 00029 #include <api_exception.h> 00030 00031 namespace coco { 00032 00034 00039 static const char *__aex_str[] = { 00040 "unknown type", 00041 "internal", 00042 "evaluator", 00043 "I/O", 00044 "delta", 00045 "search graph", 00046 "communication data", 00047 "inference engine", 00048 "graph analyzer", 00049 "management module", 00050 "initializer", 00051 "report module", 00052 "not yet implemented", 00053 "out of memory", 00054 "other" 00055 }; 00056 00057 const char *api_exception::type_str() const throw() 00058 { 00059 const char *ret; 00060 int idx = (int)type(); 00061 if(idx > (int)apiee_other || idx < 1) 00062 ret = __aex_str[0]; 00063 else 00064 ret = __aex_str[idx]; 00065 return ret; 00066 } 00067 00068 } // namespace coco