Kannel: Open Source WAP and SMS gateway  svn-r5335
wserror.h
Go to the documentation of this file.
1 /* ====================================================================
2  * The Kannel Software License, Version 1.0
3  *
4  * Copyright (c) 2001-2018 Kannel Group
5  * Copyright (c) 1998-2001 WapIT Ltd.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Kannel Group (http://www.kannel.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "Kannel" and "Kannel Group" must not be used to
28  * endorse or promote products derived from this software without
29  * prior written permission. For written permission, please
30  * contact org@kannel.org.
31  *
32  * 5. Products derived from this software may not be called "Kannel",
33  * nor may "Kannel" appear in their name, without prior written
34  * permission of the Kannel Group.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS
40  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
41  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
42  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
43  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
44  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
45  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
46  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Kannel Group. For more information on
51  * the Kannel Group, please see <http://www.kannel.org/>.
52  *
53  * Portions of this software are based upon software originally written at
54  * WapIT Ltd., Helsinki, Finland for the Kannel project.
55  */
56 
57 /*
58  *
59  * wserror.h
60  *
61  * Author: Markku Rossi <mtr@iki.fi>
62  *
63  * Copyright (c) 1999-2000 WAPIT OY LTD.
64  * All rights reserved.
65  *
66  * Error and information reporting functions.
67  *
68  */
69 
70 #ifndef WSERROR_H
71 #define WSERROR_H
72 
73 /********************* High-level functions *****************************/
74 
75 /* Report an informative message `message'. */
76 void ws_info(WsCompilerPtr compiler, char *message, ...);
77 
78 /* Report a fatal (non-recovable) error and terminate the program
79  brutally. This is only used to report internal inconsistencies and
80  bugs. This will never return. */
81 void ws_fatal(char *fmt, ...) PRINTFLIKE(1,2);
82 
83 /* Report an out-of-memory error. */
84 void ws_error_memory(WsCompilerPtr compiler);
85 
86 /* Report a syntax error from the line `line' of the current input
87  stream. If the argument `line' is 0, the error line number is the
88  current line number of the input stream. */
89 void ws_error_syntax(WsCompilerPtr compiler, WsUInt32 line);
90 
91 /* Report a source stream specific (WMLScript language specific) error
92  `message' from the source stream line number `line'. If the
93  argument `line' is 0, the line number information is taken from the
94  input stream's current position. */
95 void ws_src_error(WsCompilerPtr compiler, WsUInt32 line, char *message, ...);
96 
97 /* Report a source stream specific warning `message' from the source
98  stram line number `line'. If the argument `line' is 0, the line
99  number information is taken from the input stream's current
100  position. */
101 void ws_src_warning(WsCompilerPtr compiler, WsUInt32 line, char *message, ...);
102 
103 /********************* Low-level functions ******************************/
104 
105 /* Standard output and error streams. These are handy macros to fetch
106  the I/O function and its context corresponding to the stream from
107  the compiler. */
108 
109 #define WS_STREAM(_stream) \
110 compiler->params._stream ## _cb, \
111 compiler->params._stream ## _cb_context
112 
113 #define WS_STDOUT WS_STREAM(stdout)
114 #define WS_STDERR WS_STREAM(stderr)
115 
116 /* Print the message `fmt', `...' to the stream `io', `context'. Note
117  that not all format and format specifiers of the normal printf()
118  are supported. */
119 void ws_fprintf(WsIOProc io, void *context, const char *fmt, ...);
120 
121 /* Print the message `fmt', `ap' to the stream `io', `context'. */
122 void ws_vfprintf(WsIOProc io, void *context, const char *fmt, va_list ap);
123 
124 /* Print the string `str' to the stream `io', `context'. The function
125  will not print newline after the string. */
126 void ws_puts(WsIOProc io, void *context, const char *str);
127 
128 /* Print the character `ch' to the stream `io', `context'. */
129 void ws_fputc(int ch, WsIOProc io, void *context);
130 
131 #endif /* not WSERROR_H */
void ws_fputc(int ch, WsIOProc io, void *context)
Definition: wserror.c:324
Definition: parse.c:65
unsigned long WsUInt32
Definition: wsint.h:122
void ws_vfprintf(WsIOProc io, void *context, const char *fmt, va_list ap)
Definition: wserror.c:200
void void ws_error_memory(WsCompilerPtr compiler)
Definition: wserror.c:107
void ws_src_warning(WsCompilerPtr compiler, WsUInt32 line, char *message,...)
Definition: wserror.c:168
void ws_fprintf(WsIOProc io, void *context, const char *fmt,...)
Definition: wserror.c:190
static void PRINTFLIKE(2, 0)
Definition: log.c:494
void ws_puts(WsIOProc io, void *context, const char *str)
Definition: wserror.c:318
void ws_error_syntax(WsCompilerPtr compiler, WsUInt32 line)
Definition: wserror.c:120
void ws_fatal(char *fmt,...) PRINTFLIKE(1
void(* WsIOProc)(const char *data, size_t len, void *context)
Definition: ws.h:84
void ws_src_error(WsCompilerPtr compiler, WsUInt32 line, char *message,...)
Definition: wserror.c:145
void ws_info(WsCompilerPtr compiler, char *message,...)
Definition: wserror.c:74
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.