*
*/
+#include <config.h>
#include "dbus-internals.h"
#include "dbus-watch.h"
#include "dbus-list.h"
void *data; /**< Application data. */
DBusFreeFunction free_data_function; /**< Free the application data. */
unsigned int enabled : 1; /**< Whether it's enabled. */
+ unsigned int oom_last_time : 1; /**< Whether it was OOM last time. */
};
+dbus_bool_t
+_dbus_watch_get_enabled (DBusWatch *watch)
+{
+ return watch->enabled;
+}
+
+dbus_bool_t
+_dbus_watch_get_oom_last_time (DBusWatch *watch)
+{
+ return watch->oom_last_time;
+}
+
+void
+_dbus_watch_set_oom_last_time (DBusWatch *watch,
+ dbus_bool_t oom)
+{
+ watch->oom_last_time = oom;
+}
+
/**
* Creates a new DBusWatch. Used to add a file descriptor to be polled
* by a main loop.
watch->refcount -= 1;
if (watch->refcount == 0)
{
+ if (watch->fd != -1)
+ _dbus_warn ("this watch should have been invalidated");
+
dbus_watch_set_data (watch, NULL, NULL); /* call free_data_function */
if (watch->free_handler_data_function)
int
dbus_watch_get_fd (DBusWatch *watch)
{
+ _dbus_return_val_if_fail (watch != NULL, -1);
+
return dbus_watch_get_unix_fd(watch);
}
int
dbus_watch_get_unix_fd (DBusWatch *watch)
{
+ _dbus_return_val_if_fail (watch != NULL, -1);
+
/* FIXME remove #ifdef and do this on a lower level
* (watch should have set_socket and set_unix_fd and track
* which it has, and the transport should provide the
#ifdef DBUS_UNIX
return watch->fd;
#else
- return -1;
+ return dbus_watch_get_socket( watch );
#endif
}
int
dbus_watch_get_socket (DBusWatch *watch)
{
+ _dbus_return_val_if_fail (watch != NULL, -1);
+
return watch->fd;
}
unsigned int
dbus_watch_get_flags (DBusWatch *watch)
{
+ _dbus_return_val_if_fail (watch != NULL, 0);
_dbus_assert ((watch->flags & VALID_WATCH_FLAGS) == watch->flags);
return watch->flags;
void*
dbus_watch_get_data (DBusWatch *watch)
{
+ _dbus_return_val_if_fail (watch != NULL, NULL);
+
return watch->data;
}
void *data,
DBusFreeFunction free_data_function)
{
+ _dbus_return_if_fail (watch != NULL);
+
_dbus_verbose ("Setting watch fd %d data to data = %p function = %p from data = %p function = %p\n",
dbus_watch_get_socket (watch),
data, free_data_function, watch->data, watch->free_data_function);
dbus_bool_t
dbus_watch_get_enabled (DBusWatch *watch)
{
- _dbus_assert (watch != NULL);
+ _dbus_return_val_if_fail (watch != NULL, FALSE);
+
return watch->enabled;
}
dbus_watch_handle (DBusWatch *watch,
unsigned int flags)
{
+ _dbus_return_val_if_fail (watch != NULL, FALSE);
+
#ifndef DBUS_DISABLE_CHECKS
if (watch->fd < 0 || watch->flags == 0)
{
- _dbus_warn_check_failed ("%s: Watch is invalid, it should have been removed\n",
- _DBUS_FUNCTION_NAME);
+ _dbus_warn_check_failed ("Watch is invalid, it should have been removed\n");
return TRUE;
}
#endif