source: roaraudio/include/libroar/error.h @ 5252:3d4be139f30e

Last change on this file since 5252:3d4be139f30e was 5252:3d4be139f30e, checked in by phi, 11 years ago

removed roar_err_is_errno_clean()

File size: 3.6 KB
Line 
1//error.h:
2
3/*
4 *      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2008-2011
5 *
6 *  This file is part of libroar a part of RoarAudio,
7 *  a cross-platform sound system for both, home and professional use.
8 *  See README for details.
9 *
10 *  This file is free software; you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License version 3
12 *  as published by the Free Software Foundation.
13 *
14 *  libroar is distributed in the hope that it will be useful,
15 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *  GNU General Public License for more details.
18 *
19 *  You should have received a copy of the GNU General Public License
20 *  along with this software; see the file COPYING.  If not, write to
21 *  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
22 *  Boston, MA 02110-1301, USA.
23 *
24 *  NOTE for everyone want's to change something and send patches:
25 *  read README and HACKING! There a addition information on
26 *  the license of this document you need to read before you send
27 *  any patches.
28 *
29 *  NOTE for uses of non-GPL (LGPL,...) software using libesd, libartsc
30 *  or libpulse*:
31 *  The libs libroaresd, libroararts and libroarpulse link this lib
32 *  and are therefore GPL. Because of this it may be illigal to use
33 *  them with any software that uses libesd, libartsc or libpulse*.
34 */
35
36#ifndef _LIBROARERROR_H_
37#define _LIBROARERROR_H_
38
39#include "libroar.h"
40
41struct roar_message;
42
43/*
44  Off Size (Byte)
45    | | /- Name
46    0 1 Version
47    1 1 Cmd
48    2 1 RA Errno
49    3 1 RA SubErrno
50    4 2 Portable Errno
51    6 2 Flags
52   (8 0 Datalen)
53    8 N Data
54 */
55
56struct roar_error_frame {
57 int version;
58 int cmd;
59 int ra_errno;
60 int ra_suberrno;
61 int p_errno;
62 uint16_t flags;
63 size_t datalen;
64 void * data;
65};
66
67struct roar_error_state {
68 size_t refc;
69 int libroar_error; // roar_error
70 int system_error; // errno
71#ifdef ROAR_TARGET_WIN32
72 int winsock_error; // WSAGetLastError(), WSASetLastError()
73#else
74 int syssock_herror; // h_errno
75#endif
76#ifdef __YIFF__
77 yiffc_error_t yiffc_error; // yiffc_error
78#endif
79};
80
81struct roar_error_frame * roar_err_errorframe(void);
82
83int    roar_err_init(struct roar_error_frame * frame);
84void * roar_err_buildmsg(struct roar_message * mes, void ** data, struct roar_error_frame * frame);
85int    roar_err_parsemsg(struct roar_message * mes, void *  data, struct roar_error_frame * frame);
86
87#define roar_error (*roar_errno2())
88int *  roar_errno2(void);
89
90// clear RoarAudio's error value
91void   roar_err_clear(void);
92
93// clear system's error value (errno)
94void   roar_err_clear_errno(void);
95
96// clear all error values (to be used before calling roar_err_update())
97void   roar_err_clear_all(void);
98
99// syncs RoarAudio's and system's error values
100void   roar_err_update(void);
101
102// test of system's error value is set to 'no error'
103int    roar_err_is_errno_clear(void);
104
105// set RoarAudio's error value
106void   roar_err_set(const int error);
107
108// sync RoarAudio's error value with the value from the system
109void   roar_err_from_errno(void);
110
111// sync systen's error value with the value from RoarAudio
112void   roar_err_to_errno(void);
113
114// store a error state (both libroar and system)
115// returnes the error or ROAR_ERROR_NONE on success so it does not alter gloabl error state.
116int    roar_err_store(struct roar_error_state * state);
117
118// restore error state to values at time of call to roar_err_store()
119// returnes the error or ROAR_ERROR_NONE on success so it does not alter gloabl error state.
120int    roar_err_restore(struct roar_error_state * state);
121
122// Return a string descriping the error
123const char * roar_error2str(const int error);
124
125#endif
126
127//ll
Note: See TracBrowser for help on using the repository browser.