messages.cpp
Go to the documentation of this file.

    00001 /***************************************************************************
    00002                           ofx_messages.cpp
    00003                              -------------------
    00004     copyright            : (C) 2002 by Benoit Gr�goire
    00005     email                : benoitg@coeus.ca
    00006 ***************************************************************************/
    00010 /***************************************************************************
    00011  *                                                                         *
    00012  *   This program is free software; you can redistribute it and/or modify  *
    00013  *   it under the terms of the GNU General Public License as published by  *
    00014  *   the Free Software Foundation; either version 2 of the License, or     *
    00015  *   (at your option) any later version.                                   *
    00016  *                                                                         *
    00017  ***************************************************************************/
    00018 #include <iostream>
    00019 #include <stdlib.h>
    00020 #include <string>
    00021 #include "ParserEventGeneratorKit.h"
    00022 #include "ofx_utilities.hh"
    00023 #include "messages.hh"
    00024
    00025 SGMLApplication::OpenEntityPtr entity_ptr;
    00026 SGMLApplication::Position position;
    00028 volatile int ofx_PARSER_msg = false;
    00029 volatile int ofx_DEBUG_msg = false;
    00030 volatile int ofx_DEBUG1_msg = false;
    00031 volatile int ofx_DEBUG2_msg = false;
    00032 volatile int ofx_DEBUG3_msg = false;
    00033 volatile int ofx_DEBUG4_msg = false;
    00034 volatile int ofx_DEBUG5_msg = false;
    00035 volatile int ofx_STATUS_msg = false;
    00036 volatile int ofx_INFO_msg = false;
    00037 volatile int ofx_WARNING_msg = false;
    00038 volatile int ofx_ERROR_msg = false;
    00039 volatile int ofx_show_position = true;
    00041 void show_line_number()
    00042 {
    00043   extern SGMLApplication::OpenEntityPtr entity_ptr;
    00044   extern SGMLApplication::Position position;
    00045
    00046
    00047   if ((ofx_show_position == true))
    00048   {
    00049     SGMLApplication::Location *location = new SGMLApplication::Location(entity_ptr, position);
    00050     cerr << "(Above message occured on Line " << location->lineNumber << ", Column " << location->columnNumber << ")" << endl;
    00051     delete location;
    00052   }
    00053 }
    00054
    00058 int message_out(OfxMsgType error_type, const string message)
    00059 {
    00060
    00061
    00062   switch  (error_type)
    00063   {
    00064   case DEBUG :
    00065     if (ofx_DEBUG_msg == true)
    00066     {
    00067       cerr << "LibOFX DEBUG: " << message << "\n";
    00068       show_line_number();
    00069     }
    00070     break;
    00071   case DEBUG1 :
    00072     if (ofx_DEBUG1_msg == true)
    00073     {
    00074       cerr << "LibOFX DEBUG1: " << message << "\n";
    00075       show_line_number();
    00076     }
    00077     break;
    00078   case DEBUG2 :
    00079     if (ofx_DEBUG2_msg == true)
    00080     {
    00081       cerr << "LibOFX DEBUG2: " << message << "\n";
    00082       show_line_number();
    00083     }
    00084     break;
    00085   case DEBUG3 :
    00086     if (ofx_DEBUG3_msg == true)
    00087     {
    00088       cerr << "LibOFX DEBUG3: " << message << "\n";
    00089       show_line_number();
    00090     }
    00091     break;
    00092   case DEBUG4 :
    00093     if (ofx_DEBUG4_msg == true)
    00094     {
    00095       cerr << "LibOFX DEBUG4: " << message << "\n";
    00096       show_line_number();
    00097     }
    00098     break;
    00099   case DEBUG5 :
    00100     if (ofx_DEBUG5_msg == true)
    00101     {
    00102       cerr << "LibOFX DEBUG5: " << message << "\n";
    00103       show_line_number();
    00104     }
    00105     break;
    00106   case STATUS :
    00107     if (ofx_STATUS_msg == true)
    00108     {
    00109       cerr << "LibOFX STATUS: " << message << "\n";
    00110       show_line_number();
    00111     }
    00112     break;
    00113   case INFO :
    00114     if (ofx_INFO_msg == true)
    00115     {
    00116       cerr << "LibOFX INFO: " << message << "\n";
    00117       show_line_number();
    00118     }
    00119     break;
    00120   case WARNING :
    00121     if (ofx_WARNING_msg == true)
    00122     {
    00123       cerr << "LibOFX WARNING: " << message << "\n";
    00124       show_line_number();
    00125     }
    00126     break;
    00127   case ERROR :
    00128     if (ofx_ERROR_msg == true)
    00129     {
    00130       cerr << "LibOFX ERROR: " << message << "\n";
    00131       show_line_number();
    00132     }
    00133     break;
    00134   case PARSER :
    00135     if (ofx_PARSER_msg == true)
    00136     {
    00137       cerr << "LibOFX PARSER: " << message << "\n";
    00138       show_line_number();
    00139     }
    00140     break;
    00141   default:
    00142     cerr << "LibOFX UNKNOWN ERROR CLASS, This is a bug in LibOFX\n";
    00143     show_line_number();
    00144   }
    00145
    00146   return 0;
    00147 }
    00148