#define IOTIMERFLAG_IN_LIST 0x04
#define IOTIMERFLAG_PARENT_PUBLIC 0x08
#define IOTIMERFLAG_PARENT_SOCKET 0x10
+#define IOTIMERFLAG_PERSISTENT 0x20
struct _IOTimerDescriptor;
extern struct _IOTimerDescriptor *iotimer_sorted_descriptors;
struct _IOTimerDescriptor {
- unsigned int flags : 8;
- void *parent;
-
- struct timeval timeout;
- struct timeval autoreload;
-
- struct _IOTimerDescriptor *prev, *next;
+ unsigned int flags : 8;
+ void *parent;
+
+ struct timeval timeout;
+ struct timeval autoreload;
+
+ struct _IOTimerDescriptor *prev, *next;
};
void _init_timers();
typedef IOTIMER_CALLBACK(iotimer_callback);
struct IOTimerDescriptor {
- void *iotimer; /* struct _IOTimerDescriptor */
-
- iotimer_callback *callback;
- void *data;
+ void *iotimer; /* struct _IOTimerDescriptor */
+
+ iotimer_callback *callback;
+ void *data;
};
struct IOTimerDescriptor *iotimer_create(struct timeval *timeout);
void iotimer_start(struct IOTimerDescriptor *iotimer);
+void iotimer_stop(struct IOTimerDescriptor *iotimer);
+int iotimer_state(struct IOTimerDescriptor *iotimer);
void iotimer_set_autoreload(struct IOTimerDescriptor *iotimer, struct timeval *autoreload);
+struct timeval iotimer_get_autoreload(struct IOTimerDescriptor *iotimer);
+void iotimer_set_timeout(struct IOTimerDescriptor *iotimer, struct timeval *timeout);
+struct timeval iotimer_get_timeout(struct IOTimerDescriptor *iotimer);
void iotimer_set_callback(struct IOTimerDescriptor *iotimer, iotimer_callback *callback);
+void iotimer_set_persistent(struct IOTimerDescriptor *iotimer, int persistent);
void iotimer_destroy(struct IOTimerDescriptor *iotimer);
#endif