LibOFX
messages.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  ofx_messages.cpp
3  -------------------
4  copyright : (C) 2002 by Benoit Gr�goire
5  email : benoitg@coeus.ca
6 ***************************************************************************/
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 #include <iostream>
19 #include <stdlib.h>
20 #include <string>
21 #include "ParserEventGeneratorKit.h"
22 #include "ofx_utilities.hh"
23 #include "messages.hh"
24 #include "config.h"
25 #include "libofx.h"
26 
27 #ifdef LIBOFX_DLL
28 # define LIBOFX_API __declspec(dllexport)
29 #else
30 # define LIBOFX_API
31 #endif
32 
33 SGMLApplication::OpenEntityPtr entity_ptr;
34 SGMLApplication::Position position;
36 LIBOFX_API int ofx_PARSER_msg = false;
37 LIBOFX_API int ofx_DEBUG_msg = false;
38 LIBOFX_API int ofx_DEBUG1_msg = false;
39 LIBOFX_API int ofx_DEBUG2_msg = false;
40 LIBOFX_API int ofx_DEBUG3_msg = false;
41 LIBOFX_API int ofx_DEBUG4_msg = false;
42 LIBOFX_API int ofx_DEBUG5_msg = false;
43 LIBOFX_API int ofx_STATUS_msg = false;
44 LIBOFX_API int ofx_INFO_msg = false;
45 LIBOFX_API int ofx_WARNING_msg = false;
46 LIBOFX_API int ofx_ERROR_msg = true;
47 LIBOFX_API int ofx_show_position = true;
49 void show_line_number()
50 {
51  extern SGMLApplication::OpenEntityPtr entity_ptr;
52  extern SGMLApplication::Position position;
53 
54 
55  if (ofx_show_position == true)
56  {
57  SGMLApplication::Location *location = new SGMLApplication::Location(entity_ptr, position);
58  if (location->lineNumber < LONG_MAX)
59  std::cerr << "(Above message occurred on Line " << location->lineNumber << ", Column " << location->columnNumber << ")" << std::endl;
60  delete location;
61  }
62 }
63 
67 int message_out(OfxMsgType error_type, const std::string message)
68 {
69 
70 
71  switch (error_type)
72  {
73  case DEBUG :
74  if (ofx_DEBUG_msg == true)
75  {
76  std::cerr << "LibOFX DEBUG: " << message << "\n";
77  show_line_number();
78  }
79  break;
80  case DEBUG1 :
81  if (ofx_DEBUG1_msg == true)
82  {
83  std::cerr << "LibOFX DEBUG1: " << message << "\n";
84  show_line_number();
85  }
86  break;
87  case DEBUG2 :
88  if (ofx_DEBUG2_msg == true)
89  {
90  std::cerr << "LibOFX DEBUG2: " << message << "\n";
91  show_line_number();
92  }
93  break;
94  case DEBUG3 :
95  if (ofx_DEBUG3_msg == true)
96  {
97  std::cerr << "LibOFX DEBUG3: " << message << "\n";
98  show_line_number();
99  }
100  break;
101  case DEBUG4 :
102  if (ofx_DEBUG4_msg == true)
103  {
104  std::cerr << "LibOFX DEBUG4: " << message << "\n";
105  show_line_number();
106  }
107  break;
108  case DEBUG5 :
109  if (ofx_DEBUG5_msg == true)
110  {
111  std::cerr << "LibOFX DEBUG5: " << message << "\n";
112  show_line_number();
113  }
114  break;
115  case STATUS :
116  if (ofx_STATUS_msg == true)
117  {
118  std::cerr << "LibOFX STATUS: " << message << "\n";
119  show_line_number();
120  }
121  break;
122  case INFO :
123  if (ofx_INFO_msg == true)
124  {
125  std::cerr << "LibOFX INFO: " << message << "\n";
126  show_line_number();
127  }
128  break;
129  case WARNING :
130  if (ofx_WARNING_msg == true)
131  {
132  std::cerr << "LibOFX WARNING: " << message << "\n";
133  show_line_number();
134  }
135  break;
136  case ERROR :
137  if (ofx_ERROR_msg == true)
138  {
139  std::cerr << "LibOFX ERROR: " << message << "\n";
140  show_line_number();
141  }
142  break;
143  case PARSER :
144  if (ofx_PARSER_msg == true)
145  {
146  std::cerr << "LibOFX PARSER: " << message << "\n";
147  show_line_number();
148  }
149  break;
150  default:
151  std::cerr << "LibOFX UNKNOWN ERROR CLASS, This is a bug in LibOFX\n";
152  show_line_number();
153  }
154 
155  return 0;
156 }
ofx_DEBUG1_msg
LIBOFX_API int ofx_DEBUG1_msg
Definition: messages.cpp:38
DEBUG5
@ DEBUG5
Definition: messages.hh:37
OfxMsgType
OfxMsgType
Definition: messages.hh:23
ofx_STATUS_msg
LIBOFX_API int ofx_STATUS_msg
Definition: messages.cpp:43
ERROR
@ ERROR
Definition: messages.hh:41
DEBUG1
@ DEBUG1
Definition: messages.hh:33
ofx_DEBUG5_msg
LIBOFX_API int ofx_DEBUG5_msg
Definition: messages.cpp:42
ofx_utilities.hh
Various simple functions for type conversion & al.
ofx_WARNING_msg
LIBOFX_API int ofx_WARNING_msg
Definition: messages.cpp:45
ofx_ERROR_msg
LIBOFX_API int ofx_ERROR_msg
Definition: messages.cpp:46
ofx_DEBUG4_msg
LIBOFX_API int ofx_DEBUG4_msg
Definition: messages.cpp:41
message_out
int message_out(OfxMsgType error_type, const std::string message)
Message output function.
Definition: messages.cpp:67
ofx_DEBUG_msg
LIBOFX_API int ofx_DEBUG_msg
Definition: messages.cpp:37
ofx_INFO_msg
LIBOFX_API int ofx_INFO_msg
Definition: messages.cpp:44
INFO
@ INFO
Definition: messages.hh:39
ofx_PARSER_msg
LIBOFX_API int ofx_PARSER_msg
Definition: messages.cpp:36
position
SGMLApplication::Position position
Definition: messages.cpp:34
DEBUG3
@ DEBUG3
Definition: messages.hh:35
ofx_DEBUG3_msg
LIBOFX_API int ofx_DEBUG3_msg
Definition: messages.cpp:40
STATUS
@ STATUS
Definition: messages.hh:38
DEBUG2
@ DEBUG2
Definition: messages.hh:34
WARNING
@ WARNING
Definition: messages.hh:40
ofx_show_position
LIBOFX_API int ofx_show_position
Definition: messages.cpp:47
messages.hh
Message IO functionality.
PARSER
@ PARSER
Definition: messages.hh:42
entity_ptr
SGMLApplication::OpenEntityPtr entity_ptr
Definition: messages.cpp:33
DEBUG
@ DEBUG
Definition: messages.hh:32
ofx_DEBUG2_msg
LIBOFX_API int ofx_DEBUG2_msg
Definition: messages.cpp:39
DEBUG4
@ DEBUG4
Definition: messages.hh:36