version 1.270, 2011/01/26 00:11:47 |
version 1.271, 2011/01/26 01:54:56 |
|
|
pid_t pid; |
pid_t pid; |
int status; |
int status; |
|
|
struct client *client; |
|
|
|
int fd; |
int fd; |
struct bufferevent *event; |
struct bufferevent *event; |
|
|
|
|
void (*freefn)(void *); |
void (*freefn)(void *); |
void *data; |
void *data; |
|
|
int flags; |
|
#define JOB_PERSIST 0x1 /* don't free after callback */ |
|
|
|
RB_ENTRY(job) entry; |
|
LIST_ENTRY(job) lentry; |
LIST_ENTRY(job) lentry; |
}; |
}; |
RB_HEAD(jobs, job); |
|
LIST_HEAD(joblist, job); |
LIST_HEAD(joblist, job); |
|
|
/* Screen selection. */ |
/* Screen selection. */ |
|
|
time_t msg_time; |
time_t msg_time; |
}; |
}; |
|
|
|
/* Status output data from a job. */ |
|
struct status_out { |
|
char *cmd; |
|
char *out; |
|
|
|
RB_ENTRY(status_out) entry; |
|
}; |
|
RB_HEAD(status_out_tree, status_out); |
|
|
/* Client connection. */ |
/* Client connection. */ |
struct client { |
struct client { |
struct imsgbuf ibuf; |
struct imsgbuf ibuf; |
|
|
|
|
struct event repeat_timer; |
struct event repeat_timer; |
|
|
|
struct status_out_tree status_old; |
|
struct status_out_tree status_new; |
struct timeval status_timer; |
struct timeval status_timer; |
struct jobs status_jobs; |
|
struct screen status; |
struct screen status; |
|
|
#define CLIENT_TERMINAL 0x1 |
#define CLIENT_TERMINAL 0x1 |
|
|
|
|
/* job.c */ |
/* job.c */ |
extern struct joblist all_jobs; |
extern struct joblist all_jobs; |
int job_cmp(struct job *, struct job *); |
struct job *job_run( |
RB_PROTOTYPE(jobs, job, entry, job_cmp); |
|
void job_tree_init(struct jobs *); |
|
void job_tree_free(struct jobs *); |
|
struct job *job_get(struct jobs *, const char *); |
|
struct job *job_add(struct jobs *, int, struct client *, |
|
const char *, void (*)(struct job *), void (*)(void *), void *); |
const char *, void (*)(struct job *), void (*)(void *), void *); |
void job_remove(struct jobs *, struct job *); |
|
void job_free(struct job *); |
void job_free(struct job *); |
int job_run(struct job *); |
|
void job_died(struct job *, int); |
void job_died(struct job *, int); |
void job_kill(struct job *); |
|
|
|
/* environ.c */ |
/* environ.c */ |
int environ_cmp(struct environ_entry *, struct environ_entry *); |
int environ_cmp(struct environ_entry *, struct environ_entry *); |
|
|
void server_update_event(struct client *); |
void server_update_event(struct client *); |
|
|
/* status.c */ |
/* status.c */ |
|
int status_out_cmp(struct status_out *, struct status_out *); |
|
RB_PROTOTYPE(status_out_tree, status_out, entry, status_out_cmp); |
|
void status_free_jobs(struct status_out_tree *); |
|
void status_update_jobs(struct client *); |
int status_redraw(struct client *); |
int status_redraw(struct client *); |
char *status_replace( |
char *status_replace( |
struct client *, struct winlink *, const char *, time_t, int); |
struct client *, struct winlink *, const char *, time_t, int); |