summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/src/ae.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/src/ae.h')
-rw-r--r--examples/redis-unstable/src/ae.h118
1 files changed, 0 insertions, 118 deletions
diff --git a/examples/redis-unstable/src/ae.h b/examples/redis-unstable/src/ae.h
deleted file mode 100644
index 996d48b..0000000
--- a/examples/redis-unstable/src/ae.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* A simple event-driven programming library. Originally I wrote this code
- * for the Jim's event-loop (Jim is a Tcl interpreter) but later translated
- * it in form of a library for easy reuse.
- *
- * Copyright (c) 2006-Present, Redis Ltd.
- * All rights reserved.
- *
- * Licensed under your choice of (a) the Redis Source Available License 2.0
- * (RSALv2); or (b) the Server Side Public License v1 (SSPLv1); or (c) the
- * GNU Affero General Public License v3 (AGPLv3).
- */
-
-#ifndef __AE_H__
-#define __AE_H__
-
-#include "monotonic.h"
-
-#define AE_OK 0
-#define AE_ERR -1
-
-#define AE_NONE 0 /* No events registered. */
-#define AE_READABLE 1 /* Fire when descriptor is readable. */
-#define AE_WRITABLE 2 /* Fire when descriptor is writable. */
-#define AE_BARRIER 4 /* With WRITABLE, never fire the event if the
- READABLE event already fired in the same event
- loop iteration. Useful when you want to persist
- things to disk before sending replies, and want
- to do that in a group fashion. */
-
-#define AE_FILE_EVENTS (1<<0)
-#define AE_TIME_EVENTS (1<<1)
-#define AE_ALL_EVENTS (AE_FILE_EVENTS|AE_TIME_EVENTS)
-#define AE_DONT_WAIT (1<<2)
-#define AE_CALL_BEFORE_SLEEP (1<<3)
-#define AE_CALL_AFTER_SLEEP (1<<4)
-
-#define AE_NOMORE -1
-#define AE_DELETED_EVENT_ID -1
-
-/* Macros */
-#define AE_NOTUSED(V) ((void) V)
-
-struct aeEventLoop;
-
-/* Types and data structures */
-typedef void aeFileProc(struct aeEventLoop *eventLoop, int fd, void *clientData, int mask);
-typedef int aeTimeProc(struct aeEventLoop *eventLoop, long long id, void *clientData);
-typedef void aeEventFinalizerProc(struct aeEventLoop *eventLoop, void *clientData);
-typedef void aeBeforeSleepProc(struct aeEventLoop *eventLoop);
-
-/* File event structure */
-typedef struct aeFileEvent {
- int mask; /* one of AE_(READABLE|WRITABLE|BARRIER) */
- aeFileProc *rfileProc;
- aeFileProc *wfileProc;
- void *clientData;
-} aeFileEvent;
-
-/* Time event structure */
-typedef struct aeTimeEvent {
- long long id; /* time event identifier. */
- monotime when;
- aeTimeProc *timeProc;
- aeEventFinalizerProc *finalizerProc;
- void *clientData;
- struct aeTimeEvent *prev;
- struct aeTimeEvent *next;
- int refcount; /* refcount to prevent timer events from being
- * freed in recursive time event calls. */
-} aeTimeEvent;
-
-/* A fired event */
-typedef struct aeFiredEvent {
- int fd;
- int mask;
-} aeFiredEvent;
-
-/* State of an event based program */
-typedef struct aeEventLoop {
- int maxfd; /* highest file descriptor currently registered */
- int setsize; /* max number of file descriptors tracked */
- long long timeEventNextId;
- int nevents; /* Size of Registered events */
- aeFileEvent *events; /* Registered events */
- aeFiredEvent *fired; /* Fired events */
- aeTimeEvent *timeEventHead;
- int stop;
- void *apidata; /* This is used for polling API specific data */
- aeBeforeSleepProc *beforesleep;
- aeBeforeSleepProc *aftersleep;
- int flags;
- void *privdata[2];
-} aeEventLoop;
-
-/* Prototypes */
-aeEventLoop *aeCreateEventLoop(int setsize);
-void aeDeleteEventLoop(aeEventLoop *eventLoop);
-void aeStop(aeEventLoop *eventLoop);
-int aeCreateFileEvent(aeEventLoop *eventLoop, int fd, int mask,
- aeFileProc *proc, void *clientData);
-void aeDeleteFileEvent(aeEventLoop *eventLoop, int fd, int mask);
-int aeGetFileEvents(aeEventLoop *eventLoop, int fd);
-void *aeGetFileClientData(aeEventLoop *eventLoop, int fd);
-long long aeCreateTimeEvent(aeEventLoop *eventLoop, long long milliseconds,
- aeTimeProc *proc, void *clientData,
- aeEventFinalizerProc *finalizerProc);
-int aeDeleteTimeEvent(aeEventLoop *eventLoop, long long id);
-int aeProcessEvents(aeEventLoop *eventLoop, int flags);
-int aeWait(int fd, int mask, long long milliseconds);
-void aeMain(aeEventLoop *eventLoop);
-char *aeGetApiName(void);
-void aeSetBeforeSleepProc(aeEventLoop *eventLoop, aeBeforeSleepProc *beforesleep);
-void aeSetAfterSleepProc(aeEventLoop *eventLoop, aeBeforeSleepProc *aftersleep);
-int aeGetSetSize(aeEventLoop *eventLoop);
-int aeResizeSetSize(aeEventLoop *eventLoop, int setsize);
-void aeSetDontWait(aeEventLoop *eventLoop, int noWait);
-
-#endif