summaryrefslogtreecommitdiff
path: root/src/irc/core/servers-idle.h
blob: 12b67a96b645fd5b2b4b806a09a7357a47292bd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef __SERVERS_IDLE_H
#define __SERVERS_IDLE_H

/* Add new idle command to queue */
int server_idle_add_redir(IRC_SERVER_REC *server, const char *cmd,
			  const char *redirect_cmd, const char *arg,
			  int remote, const char *failure_signal, ...);
#define server_idle_add(server, cmd) \
        server_idle_add_redir(server, cmd, NULL, NULL, 0, NULL, NULL)

/* Add new idle command to first of queue */
int server_idle_add_first_redir(IRC_SERVER_REC *server, const char *cmd,
				const char *redirect_cmd, const char *arg,
				int remote, const char *failure_signal, ...);
#define server_idle_add_first(server, cmd) \
        server_idle_add_first_redir(server, cmd, NULL, NULL, 0, NULL, NULL)

/* Add new idle command to specified position of queue */
int server_idle_insert_redir(IRC_SERVER_REC *server, const char *cmd, int tag,
			     const char *redirect_cmd, const char *arg,
			     int remote, const char *failure_signal, ...);
#define server_idle_insert(server, cmd, tag) \
        server_idle_insert_redir(server, cmd, tag, NULL, NULL, 0, NULL, NULL)

/* Check if record is still in queue */
int server_idle_find(IRC_SERVER_REC *server, int tag);

/* Remove record from idle queue */
int server_idle_remove(IRC_SERVER_REC *server, int tag);

void servers_idle_init(void);
void servers_idle_deinit(void);

#endif