Bram Moolenaar | e0874f8 | 2016-01-24 20:36:41 +0100 | [diff] [blame] | 1 | /* channel.c */ |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 2 | void ch_logfile(char_u *fname, char_u *opt); |
Bram Moolenaar | 81661fb | 2016-02-18 22:23:34 +0100 | [diff] [blame] | 3 | int ch_log_active(void); |
Bram Moolenaar | 7707344 | 2016-02-13 23:23:53 +0100 | [diff] [blame] | 4 | channel_T *add_channel(void); |
Bram Moolenaar | b9c31e7 | 2016-09-29 15:18:57 +0200 | [diff] [blame] | 5 | int has_any_channel(void); |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 6 | int channel_unref(channel_T *channel); |
Bram Moolenaar | 107e1ee | 2016-04-08 17:07:19 +0200 | [diff] [blame] | 7 | int free_unused_channels_contents(int copyID, int mask); |
| 8 | void free_unused_channels(int copyID, int mask); |
Bram Moolenaar | d04a020 | 2016-01-26 23:30:18 +0100 | [diff] [blame] | 9 | void channel_gui_register_all(void); |
Bram Moolenaar | 4e221c9 | 2016-02-23 13:20:22 +0100 | [diff] [blame] | 10 | channel_T *channel_open(char *hostname, int port_in, int waittime, void (*nb_close_cb)(void)); |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 11 | channel_T *channel_open_func(typval_T *argvars); |
Bram Moolenaar | d807036 | 2016-02-15 21:56:54 +0100 | [diff] [blame] | 12 | void channel_set_pipes(channel_T *channel, sock_T in, sock_T out, sock_T err); |
Bram Moolenaar | 014069a | 2016-03-03 22:51:40 +0100 | [diff] [blame] | 13 | void channel_set_job(channel_T *channel, job_T *job, jobopt_T *options); |
Bram Moolenaar | 4e221c9 | 2016-02-23 13:20:22 +0100 | [diff] [blame] | 14 | void channel_set_options(channel_T *channel, jobopt_T *opt); |
Bram Moolenaar | dc0ccae | 2016-10-09 17:28:01 +0200 | [diff] [blame] | 15 | void channel_set_req_callback(channel_T *channel, ch_part_T part, char_u *callback, partial_T *partial, int id); |
Bram Moolenaar | e0f76d0 | 2016-05-09 20:38:53 +0200 | [diff] [blame] | 16 | void channel_buffer_free(buf_T *buf); |
Bram Moolenaar | 8b877ac | 2016-03-28 19:16:20 +0200 | [diff] [blame] | 17 | void channel_write_any_lines(void); |
Bram Moolenaar | 99ef062 | 2016-03-06 20:22:25 +0100 | [diff] [blame] | 18 | void channel_write_new_lines(buf_T *buf); |
Bram Moolenaar | dc0ccae | 2016-10-09 17:28:01 +0200 | [diff] [blame] | 19 | readq_T *channel_peek(channel_T *channel, ch_part_T part); |
Bram Moolenaar | 5f1032d | 2016-06-07 22:16:36 +0200 | [diff] [blame] | 20 | char_u *channel_first_nl(readq_T *node); |
Bram Moolenaar | dc0ccae | 2016-10-09 17:28:01 +0200 | [diff] [blame] | 21 | char_u *channel_get(channel_T *channel, ch_part_T part); |
| 22 | void channel_consume(channel_T *channel, ch_part_T part, int len); |
| 23 | int channel_collapse(channel_T *channel, ch_part_T part, int want_nl); |
Bram Moolenaar | 7707344 | 2016-02-13 23:23:53 +0100 | [diff] [blame] | 24 | int channel_can_write_to(channel_T *channel); |
| 25 | int channel_is_open(channel_T *channel); |
Bram Moolenaar | 4b785f6 | 2016-11-29 21:54:44 +0100 | [diff] [blame] | 26 | int channel_has_readahead(channel_T *channel, ch_part_T part); |
Bram Moolenaar | 7ef3810 | 2016-09-26 22:36:58 +0200 | [diff] [blame] | 27 | char *channel_status(channel_T *channel, int req_part); |
Bram Moolenaar | 03602ec | 2016-03-20 20:57:45 +0100 | [diff] [blame] | 28 | void channel_info(channel_T *channel, dict_T *dict); |
Bram Moolenaar | 8b37421 | 2016-02-24 20:43:06 +0100 | [diff] [blame] | 29 | void channel_close(channel_T *channel, int invoke_close_cb); |
Bram Moolenaar | 0874a83 | 2016-09-01 15:11:51 +0200 | [diff] [blame] | 30 | void channel_close_in(channel_T *channel); |
Bram Moolenaar | 7707344 | 2016-02-13 23:23:53 +0100 | [diff] [blame] | 31 | void channel_clear(channel_T *channel); |
| 32 | void channel_free_all(void); |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 33 | void common_channel_read(typval_T *argvars, typval_T *rettv, int raw); |
Bram Moolenaar | dc0ccae | 2016-10-09 17:28:01 +0200 | [diff] [blame] | 34 | channel_T *channel_fd2channel(sock_T fd, ch_part_T *partp); |
Bram Moolenaar | 13ebb03 | 2017-08-26 22:02:51 +0200 | [diff] [blame] | 35 | void channel_handle_events(int only_keep_open); |
Bram Moolenaar | 4ab7968 | 2017-08-27 14:50:47 +0200 | [diff] [blame] | 36 | int channel_any_keep_open(void); |
Bram Moolenaar | 97bd5e6 | 2017-08-18 20:50:30 +0200 | [diff] [blame] | 37 | void channel_set_nonblock(channel_T *channel, ch_part_T part); |
Bram Moolenaar | 13ebb03 | 2017-08-26 22:02:51 +0200 | [diff] [blame] | 38 | int channel_send(channel_T *channel, ch_part_T part, char_u *buf_arg, int len_arg, char *fun); |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 39 | void ch_expr_common(typval_T *argvars, typval_T *rettv, int eval); |
| 40 | void ch_raw_common(typval_T *argvars, typval_T *rettv, int eval); |
Bram Moolenaar | f336061 | 2017-10-01 16:21:31 +0200 | [diff] [blame] | 41 | int channel_poll_setup(int nfd_in, void *fds_in, int *towait); |
Bram Moolenaar | e0874f8 | 2016-01-24 20:36:41 +0100 | [diff] [blame] | 42 | int channel_poll_check(int ret_in, void *fds_in); |
Bram Moolenaar | f336061 | 2017-10-01 16:21:31 +0200 | [diff] [blame] | 43 | int channel_select_setup(int maxfd_in, void *rfds_in, void *wfds_in, struct timeval *tv, struct timeval **tvp); |
Bram Moolenaar | 8b877ac | 2016-03-28 19:16:20 +0200 | [diff] [blame] | 44 | int channel_select_check(int ret_in, void *rfds_in, void *wfds_in); |
Bram Moolenaar | d7ece10 | 2016-02-02 23:23:02 +0100 | [diff] [blame] | 45 | int channel_parse_messages(void); |
Bram Moolenaar | 8a8199e | 2016-11-26 15:13:33 +0100 | [diff] [blame] | 46 | int channel_any_readahead(void); |
Bram Moolenaar | 4b6a6dc | 2016-02-04 22:49:49 +0100 | [diff] [blame] | 47 | int set_ref_in_channel(int copyID); |
Bram Moolenaar | dc0ccae | 2016-10-09 17:28:01 +0200 | [diff] [blame] | 48 | ch_part_T channel_part_send(channel_T *channel); |
| 49 | ch_part_T channel_part_read(channel_T *channel); |
| 50 | ch_mode_T channel_get_mode(channel_T *channel, ch_part_T part); |
| 51 | int channel_get_timeout(channel_T *channel, ch_part_T part); |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 52 | void clear_job_options(jobopt_T *opt); |
Bram Moolenaar | 0e4c1de | 2016-04-07 21:40:38 +0200 | [diff] [blame] | 53 | void free_job_options(jobopt_T *opt); |
Bram Moolenaar | 08d384f | 2017-08-11 21:51:23 +0200 | [diff] [blame] | 54 | int get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2); |
Bram Moolenaar | dc0ccae | 2016-10-09 17:28:01 +0200 | [diff] [blame] | 55 | channel_T *get_channel_arg(typval_T *tv, int check_open, int reading, ch_part_T part); |
Bram Moolenaar | 655da31 | 2016-05-28 22:22:34 +0200 | [diff] [blame] | 56 | void job_free_all(void); |
Bram Moolenaar | b0b98d5 | 2018-05-05 21:01:00 +0200 | [diff] [blame] | 57 | int job_any_running(void); |
Bram Moolenaar | dcaa613 | 2017-08-13 17:13:09 +0200 | [diff] [blame] | 58 | int win32_build_cmd(list_T *l, garray_T *gap); |
Bram Moolenaar | 08d384f | 2017-08-11 21:51:23 +0200 | [diff] [blame] | 59 | void job_cleanup(job_T *job); |
Bram Moolenaar | b8d4905 | 2016-05-01 14:22:16 +0200 | [diff] [blame] | 60 | int set_ref_in_job(int copyID); |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 61 | void job_unref(job_T *job); |
Bram Moolenaar | 107e1ee | 2016-04-08 17:07:19 +0200 | [diff] [blame] | 62 | int free_unused_jobs_contents(int copyID, int mask); |
| 63 | void free_unused_jobs(int copyID, int mask); |
Bram Moolenaar | 08d384f | 2017-08-11 21:51:23 +0200 | [diff] [blame] | 64 | job_T *job_alloc(void); |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 65 | void job_set_options(job_T *job, jobopt_T *opt); |
| 66 | void job_stop_on_exit(void); |
Bram Moolenaar | cf7c11a | 2016-06-02 20:05:26 +0200 | [diff] [blame] | 67 | int has_pending_job(void); |
Bram Moolenaar | cd1a62d | 2018-12-14 21:32:02 +0100 | [diff] [blame] | 68 | int job_check_ended(void); |
Bram Moolenaar | 493359e | 2018-06-12 20:25:52 +0200 | [diff] [blame] | 69 | job_T *job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg, int is_terminal); |
Bram Moolenaar | 8e2c942 | 2016-03-12 13:43:33 +0100 | [diff] [blame] | 70 | char *job_status(job_T *job); |
Bram Moolenaar | 8950a56 | 2016-03-12 15:22:55 +0100 | [diff] [blame] | 71 | void job_info(job_T *job, dict_T *dict); |
Bram Moolenaar | e1fc515 | 2018-04-21 19:49:08 +0200 | [diff] [blame] | 72 | void job_info_all(list_T *l); |
Bram Moolenaar | 96ca27a | 2017-07-17 23:20:24 +0200 | [diff] [blame] | 73 | int job_stop(job_T *job, typval_T *argvars, char *type); |
Bram Moolenaar | f273245 | 2018-06-03 14:47:35 +0200 | [diff] [blame] | 74 | void invoke_prompt_callback(void); |
Bram Moolenaar | 0e5979a | 2018-06-17 19:36:33 +0200 | [diff] [blame] | 75 | int invoke_prompt_interrupt(void); |
Bram Moolenaar | e0874f8 | 2016-01-24 20:36:41 +0100 | [diff] [blame] | 76 | /* vim: set ft=c : */ |