2002-01-11 Michael Meeks <michael@ximian.com>
[platform/core/uifw/at-spi2-atk.git] / cspi / spi-private.h
index 64eba34..633572e 100644 (file)
@@ -1,20 +1,42 @@
-#ifndef __SPI_PRIVATE_H__
-#define __SPI_PRIVATE_H__
+#ifndef _SPI_PRIVATE_H_
+#define _SPI_PRIVATE_H_
 
-#include <cspi/spi.h>
-
-G_BEGIN_DECLS
-
-CORBA_Environment      *spi_ev         (void);
-AccessibilityRegistry   spi_registry   (void);
-
-boolean                 spi_exception  (void);
+/* Private internal implementation details of at-spi. */
 
-Accessible             *spi_object_add (Accessible corba_object);
-
-int                     SPI_init (void);
-void                    SPI_exit (void);
-
-G_END_DECLS
-
-#endif /* __SPI_PRIVATE_H__ */
+#include <libspi/Accessibility.h>
+#include <cspi/spi.h>
+#include "cspi/cspi-lowlevel.h"
+#include "cspi/spi-listener.h"
+
+struct _Accessible {
+       CORBA_Object objref;
+       /* And some other bits */
+       guint        ref_count;
+};
+
+#define CSPI_OBJREF(a) (((Accessible *)(a))->objref)
+
+CORBA_Environment     *cspi_ev               (void);
+SPIBoolean             cspi_exception        (void);
+Accessibility_Registry cspi_registry         (void);
+Accessible            *cspi_object_add       (CORBA_Object         corba_object);
+void                   cspi_object_ref       (Accessible          *accessible);
+void                   cspi_object_unref     (Accessible          *accessible);
+SPIBoolean             cspi_accessible_is_a  (Accessible          *obj,
+                                             const char          *interface_name);
+
+#define cspi_return_if_fail(val)               \
+       if (!(val))                             \
+               return
+#define cspi_return_val_if_fail(val, ret)      \
+       if (!(val))                             \
+               return (ret)
+
+#define cspi_return_if_ev(err)                 \
+       if (!cspi_check_ev (err))               \
+               return;
+#define cspi_return_val_if_ev(err, ret)        \
+       if (!cspi_check_ev (err))               \
+               return (ret);
+
+#endif /* _SPI_PRIVATE_H_ */