2001-12-10 Michael Meeks <michael@ximian.com>
[platform/core/uifw/at-spi2-atk.git] / cspi / spi-private.h
1 #ifndef _SPI_PRIVATE_H_
2 #define _SPI_PRIVATE_H_
3
4 /*
5  * Private internal implementation details of at-spi.
6  */
7
8 #include <libbonobo.h>
9 #include <libspi/Accessibility.h>
10 #include <cspi/spi.h>
11 #include "cspi/spi-listener.h"
12
13 struct _Accessible {
14         CORBA_Object objref;
15         /* And some other bits */
16         guint        ref_count;
17 };
18
19 #define CSPI_OBJREF(a) (((Accessible *)(a))->objref)
20
21 CORBA_Environment     *cspi_ev               (void);
22 SPIBoolean             cspi_exception        (void);
23 Accessibility_Registry cspi_registry         (void);
24 Accessible            *cspi_object_add       (CORBA_Object         corba_object);
25 void                   cspi_object_ref       (Accessible          *accessible);
26 void                   cspi_object_unref     (Accessible          *accessible);
27 SPIBoolean             cspi_accessible_is_a  (Accessible          *obj,
28                                               const char          *interface_name);
29 SPIBoolean             cspi_check_ev         (const char          *error_string);
30
31 #define cspi_return_if_fail(val)                \
32         if (!(val))                             \
33                 return
34 #define cspi_return_val_if_fail(val, ret)       \
35         if (!(val))                             \
36                 return (ret)
37
38 #define cspi_return_if_ev(err)                  \
39         if (!cspi_check_ev (err))               \
40                 return;
41 #define cspi_return_val_if_ev(err, ret) \
42         if (!cspi_check_ev (err))               \
43                 return (ret);
44
45 #endif /* _SPI_PRIVATE_H_ */