47a61145eb0cdb12f33c33c8bc216004dfd16dda
[platform/upstream/libnice.git] / stun / debug.h
1 /*
2  * This file is part of the Nice GLib ICE library.
3  *
4  * (C) 2008-2009 Collabora Ltd.
5  *  Contact: Youness Alaoui
6  * (C) 2007 Nokia Corporation. All rights reserved.
7  *
8  * The contents of this file are subject to the Mozilla Public License Version
9  * 1.1 (the "License"); you may not use this file except in compliance with
10  * the License. You may obtain a copy of the License at
11  * http://www.mozilla.org/MPL/
12  *
13  * Software distributed under the License is distributed on an "AS IS" basis,
14  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
15  * for the specific language governing rights and limitations under the
16  * License.
17  *
18  * The Original Code is the Nice GLib ICE library.
19  *
20  * The Initial Developers of the Original Code are Collabora Ltd and Nokia
21  * Corporation. All Rights Reserved.
22  *
23  * Contributors:
24  *   Youness Alaoui, Collabora Ltd.
25  *
26  * Alternatively, the contents of this file may be used under the terms of the
27  * the GNU Lesser General Public License Version 2.1 (the "LGPL"), in which
28  * case the provisions of LGPL are applicable instead of those above. If you
29  * wish to allow use of your version of this file only under the terms of the
30  * LGPL and not to allow others to use your version of this file under the
31  * MPL, indicate your decision by deleting the provisions above and replace
32  * them with the notice and other provisions required by the LGPL. If you do
33  * not delete the provisions above, a recipient may use your version of this
34  * file under either the MPL or the LGPL.
35  */
36
37 #ifndef STUN_DEBUG_H
38 #define STUN_DEBUG_H
39
40 #include <stddef.h>
41 #include <stdarg.h>
42
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46
47
48 /**
49  * stun_debug_enable:
50  *
51  * Enable debug messages to stderr
52  */
53 void stun_debug_enable (void);
54
55 /**
56  * stun_debug_disable:
57  *
58  * Disable debug messages to stderr
59  */
60 void stun_debug_disable (void);
61
62 /**
63  * StunDebugHandler:
64  * @format: printf()-style debug message format string
65  * @ap: Parameters to substitute into message placeholders
66  *
67  * Callback for a debug message from the STUN code.
68  */
69 #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4))
70 typedef void (*StunDebugHandler) (const char *format, va_list ap)
71   __attribute__((__format__ (__printf__, 1, 0)));
72 #else
73 typedef void (*StunDebugHandler) (const char *format, va_list ap);
74 #endif
75
76 /**
77  * stun_set_debug_handler:
78  * @handler: (nullable): Handler for STUN debug messages, or %NULL to use the
79  *   default
80  *
81  * Set a callback function to be invoked for each debug message from the STUN
82  * code. The callback will only be invoked if STUN debugging is enabled using
83  * stun_debug_enable().
84  *
85  * The default callback prints the formatted debug message to stderr.
86  */
87 void stun_set_debug_handler (StunDebugHandler handler);
88
89 #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4))
90 void stun_debug (const char *fmt, ...)
91   __attribute__((__format__ (__printf__, 1, 2)));
92 #else
93 void stun_debug (const char *fmt, ...);
94 #endif
95 void stun_debug_bytes (const char *prefix, const void *data, size_t len);
96
97
98 # ifdef __cplusplus
99 }
100 # endif
101
102 #endif /* STUN_DEBUG_H */