view libpurple/dbus-maybe.h @ 15681:14d85ee22d78

Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
author Evan Schoenberg <evan.s@dreskin.net>
date Fri, 23 Feb 2007 05:17:20 +0000
parents 5fe8042783c1
children 32c366eeeb99
line wrap: on
line source

/* This file contains macros that wrap calls to the gaim dbus module.
   These macros call the appropriate functions if the build includes
   dbus support and do nothing otherwise.  See "dbus-server.h" for
   documentation.  */

#ifndef _GAIM_DBUS_MAYBE_H_
#define _GAIM_DBUS_MAYBE_H_

#ifdef HAVE_DBUS

#include "dbus-server.h"

/* this provides a type check */
#define GAIM_DBUS_REGISTER_POINTER(ptr, type) { \
    type *typed_ptr = ptr; \
    gaim_dbus_register_pointer(typed_ptr, GAIM_DBUS_TYPE(type));	\
}
#define GAIM_DBUS_UNREGISTER_POINTER(ptr) gaim_dbus_unregister_pointer(ptr)

#else  /* !HAVE_DBUS */

#define GAIM_DBUS_REGISTER_POINTER(ptr, type) 
#define GAIM_DBUS_UNREGISTER_POINTER(ptr)
#define DBUS_EXPORT

#endif	/* HAVE_DBUS */

#endif