main.h
author viric@llimona
Mon, 02 Apr 2007 17:53:52 +0200
changeset 74 bb1b20d79acf
parent 73 0c03786ff927
child 92 05004c52ecff
permissions -rw-r--r--
Marking the TODO for 0.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
     1
enum Request
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
     2
{
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
     3
    c_QUEUE,
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
     4
    c_TAIL,
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
     5
    c_KILL_SERVER,
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
     6
    c_LIST,
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
     7
    c_CLEAR_FINISHED,
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
     8
    c_SHOW_HELP,
37
f2f6c6f0e86f Added version.
viric@llimona
parents: 35
diff changeset
     9
    c_SHOW_VERSION,
33
5c2d981f2f8e Added 'cat' and 'show output filename'
viric@llimona
parents: 32
diff changeset
    10
    c_CAT,
5c2d981f2f8e Added 'cat' and 'show output filename'
viric@llimona
parents: 32
diff changeset
    11
    c_SHOW_OUTPUT_FILE,
35
83d0da612dc4 Kill the running job works fine.
viric@llimona
parents: 33
diff changeset
    12
    c_SHOW_PID,
42
f093d0964cf5 Added wait for jobs.
viric@llimona
parents: 41
diff changeset
    13
    c_REMOVEJOB,
53
731c41817842 '-u' (urgency) implemented.
viric@llimona
parents: 51
diff changeset
    14
    c_WAITJOB,
63
47be318f4cbc Added "-s" for querying the job state.
viric@llimona
parents: 62
diff changeset
    15
    c_URGENT,
66
f70a27afd92e Adding "swap jobs" with -U. Fixed a big problem with fds 0, 1, 2.
viric@mandarina
parents: 65
diff changeset
    16
    c_GET_STATE,
f70a27afd92e Adding "swap jobs" with -U. Fixed a big problem with fds 0, 1, 2.
viric@mandarina
parents: 65
diff changeset
    17
    c_SWAP_JOBS
31
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
    18
};
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
    19
30
ab88478a7e9b The commandline parameters are centered in a struct.
viric@llimona
parents: 28
diff changeset
    20
struct Command_line {
31
1a6c732b0b71 The command line parsing has been simplified.
viric@llimona
parents: 30
diff changeset
    21
    enum Request request;
30
ab88478a7e9b The commandline parameters are centered in a struct.
viric@llimona
parents: 28
diff changeset
    22
    int need_server;
ab88478a7e9b The commandline parameters are centered in a struct.
viric@llimona
parents: 28
diff changeset
    23
    int store_output;
ab88478a7e9b The commandline parameters are centered in a struct.
viric@llimona
parents: 28
diff changeset
    24
    int should_go_background;
55
678ca291d545 Now the '-nf' doesn't leave a job in 'finished' state.
viric@llimona
parents: 53
diff changeset
    25
    int should_keep_finished;
71
531666e297d7 Send e-letter implemented.
viric@llimona
parents: 69
diff changeset
    26
    int send_output_by_mail;
65
dced0efccc19 Added gzip output.
viric@llimona
parents: 63
diff changeset
    27
    int gzip;
71
531666e297d7 Send e-letter implemented.
viric@llimona
parents: 69
diff changeset
    28
    int jobid; /* When queuing a job, main.c will fill it automatically from
531666e297d7 Send e-letter implemented.
viric@llimona
parents: 69
diff changeset
    29
                  the server answer to NEWJOB */
66
f70a27afd92e Adding "swap jobs" with -U. Fixed a big problem with fds 0, 1, 2.
viric@mandarina
parents: 65
diff changeset
    30
    int jobid2;
68
3ae9b38d7d30 Now the orders don't run under 'bash'. They run as is.
viric@llimona
parents: 65
diff changeset
    31
    struct {
3ae9b38d7d30 Now the orders don't run under 'bash'. They run as is.
viric@llimona
parents: 65
diff changeset
    32
        char **array;
3ae9b38d7d30 Now the orders don't run under 'bash'. They run as is.
viric@llimona
parents: 65
diff changeset
    33
        int num;
3ae9b38d7d30 Now the orders don't run under 'bash'. They run as is.
viric@llimona
parents: 65
diff changeset
    34
    } command;
30
ab88478a7e9b The commandline parameters are centered in a struct.
viric@llimona
parents: 28
diff changeset
    35
};
3
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    36
30
ab88478a7e9b The commandline parameters are centered in a struct.
viric@llimona
parents: 28
diff changeset
    37
extern struct Command_line command_line;
32
3531439f2770 Tail works.
viric@llimona
parents: 31
diff changeset
    38
extern int server_socket;
3
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    39
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    40
struct msg;
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    41
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    42
/* client.c */
68
3ae9b38d7d30 Now the orders don't run under 'bash'. They run as is.
viric@llimona
parents: 65
diff changeset
    43
void c_new_job();
8
03339adb7014 Some more code for execution.
viric@llimona
parents: 5
diff changeset
    44
void c_list_jobs();
44
4dcf05746ece Better include files.
viric@llimona
parents: 42
diff changeset
    45
void c_shutdown_server();
5
bc5e251418f3 The LIST_LINEs are outputed by the client.
viric@llimona
parents: 3
diff changeset
    46
void c_wait_server_lines();
44
4dcf05746ece Better include files.
viric@llimona
parents: 42
diff changeset
    47
void c_clear_finished();
68
3ae9b38d7d30 Now the orders don't run under 'bash'. They run as is.
viric@llimona
parents: 65
diff changeset
    48
int c_wait_server_commands();
35
83d0da612dc4 Kill the running job works fine.
viric@llimona
parents: 33
diff changeset
    49
void c_send_runjob_ok(const char *ofname, int pid);
32
3531439f2770 Tail works.
viric@llimona
parents: 31
diff changeset
    50
void c_tail();
33
5c2d981f2f8e Added 'cat' and 'show output filename'
viric@llimona
parents: 32
diff changeset
    51
void c_cat();
5c2d981f2f8e Added 'cat' and 'show output filename'
viric@llimona
parents: 32
diff changeset
    52
void c_show_output_file();
41
cad41574feda Added 'remove job'.
viric@llimona
parents: 38
diff changeset
    53
void c_remove_job();
44
4dcf05746ece Better include files.
viric@llimona
parents: 42
diff changeset
    54
void c_show_pid();
51
aa6e05d77537 '-w' returns the waited errorlevel. Added a testbench.
viric@llimona
parents: 44
diff changeset
    55
int c_wait_job();
53
731c41817842 '-u' (urgency) implemented.
viric@llimona
parents: 51
diff changeset
    56
void c_move_urgent();
62
2b29d4666f6c Return the jobid in stdout.
viric@llimona
parents: 55
diff changeset
    57
int c_wait_newjob_ok();
63
47be318f4cbc Added "-s" for querying the job state.
viric@llimona
parents: 62
diff changeset
    58
void c_get_state();
66
f70a27afd92e Adding "swap jobs" with -U. Fixed a big problem with fds 0, 1, 2.
viric@mandarina
parents: 65
diff changeset
    59
void c_swap_jobs();
71
531666e297d7 Send e-letter implemented.
viric@llimona
parents: 69
diff changeset
    60
char *build_command_string();
3
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    61
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    62
/* jobs.c */
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    63
void s_list(int s);
18
af4898956964 Now commands of any-length are accepted.
viric@llimona
parents: 8
diff changeset
    64
int s_newjob(int s, struct msg *m);
3
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    65
void s_removejob(int jobid);
19
5efc347cca8d The finished jobs store the errorlevel, and can be listed.
viric@llimona
parents: 18
diff changeset
    66
void job_finished(int errorlevel);
8
03339adb7014 Some more code for execution.
viric@llimona
parents: 5
diff changeset
    67
int next_run_job();
19
5efc347cca8d The finished jobs store the errorlevel, and can be listed.
viric@llimona
parents: 18
diff changeset
    68
void s_mark_job_running();
20
d85b4c0745fa "-c" added, for clearing the finished tasks' list.
viric@llimona
parents: 19
diff changeset
    69
void s_clear_finished();
35
83d0da612dc4 Kill the running job works fine.
viric@llimona
parents: 33
diff changeset
    70
void s_process_runjob_ok(int jobid, char *oname, int pid);
32
3531439f2770 Tail works.
viric@llimona
parents: 31
diff changeset
    71
void s_send_output(int socket, int jobid);
41
cad41574feda Added 'remove job'.
viric@llimona
parents: 38
diff changeset
    72
void s_remove_job(int s, int jobid);
42
f093d0964cf5 Added wait for jobs.
viric@llimona
parents: 41
diff changeset
    73
void s_remove_notification(int s);
44
4dcf05746ece Better include files.
viric@llimona
parents: 42
diff changeset
    74
void check_notify_list(int jobid);
4dcf05746ece Better include files.
viric@llimona
parents: 42
diff changeset
    75
void s_wait_job(int s, int jobid);
53
731c41817842 '-u' (urgency) implemented.
viric@llimona
parents: 51
diff changeset
    76
void s_move_urgent(int s, int jobid);
63
47be318f4cbc Added "-s" for querying the job state.
viric@llimona
parents: 62
diff changeset
    77
void s_send_state(int s, int jobid);
66
f70a27afd92e Adding "swap jobs" with -U. Fixed a big problem with fds 0, 1, 2.
viric@mandarina
parents: 65
diff changeset
    78
void s_swap_jobs(int s, int jobid1, int jobid2);
3
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    79
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    80
/* server.c */
28
107abb4ec98a Unified socket path, depending on the username and $TMPDIR.
viric@llimona
parents: 27
diff changeset
    81
void server_main(int notify_fd, char *_path);
3
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    82
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    83
/* server_start.c */
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    84
int try_connect(int s);
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    85
void wait_server_up();
2fb8a6bdd024 More code.
viric@llimona
parents:
diff changeset
    86
int ensure_server_up();
25
e9e4babe6262 Now the server is quicly started.
viric@llimona
parents: 22
diff changeset
    87
void notify_parent(int fd);
8
03339adb7014 Some more code for execution.
viric@llimona
parents: 5
diff changeset
    88
03339adb7014 Some more code for execution.
viric@llimona
parents: 5
diff changeset
    89
/* execute.c */
68
3ae9b38d7d30 Now the orders don't run under 'bash'. They run as is.
viric@llimona
parents: 65
diff changeset
    90
int run_job();
32
3531439f2770 Tail works.
viric@llimona
parents: 31
diff changeset
    91
33
5c2d981f2f8e Added 'cat' and 'show output filename'
viric@llimona
parents: 32
diff changeset
    92
/* client_run.c */
32
3531439f2770 Tail works.
viric@llimona
parents: 31
diff changeset
    93
void c_run_tail(const char *filename);
33
5c2d981f2f8e Added 'cat' and 'show output filename'
viric@llimona
parents: 32
diff changeset
    94
void c_run_cat(const char *filename);
71
531666e297d7 Send e-letter implemented.
viric@llimona
parents: 69
diff changeset
    95
531666e297d7 Send e-letter implemented.
viric@llimona
parents: 69
diff changeset
    96
/* mail.c */
531666e297d7 Send e-letter implemented.
viric@llimona
parents: 69
diff changeset
    97
void send_mail(int jobid, int errorlevel, const char *ofname,
531666e297d7 Send e-letter implemented.
viric@llimona
parents: 69
diff changeset
    98
    const char *command);
73
0c03786ff927 Added TS_ONFINISH.
viric@llimona
parents: 71
diff changeset
    99
void hook_on_finish(int jobid, int errorlevel, const char *ofname,
0c03786ff927 Added TS_ONFINISH.
viric@llimona
parents: 71
diff changeset
   100
    const char *command);