blob: 768049c552bcfba8846b7de6e2bdcfa3ce9d3497 [file] [log] [blame]
Bram Moolenaare0874f82016-01-24 20:36:41 +01001/* channel.c */
Bram Moolenaar8e2c9422016-03-12 13:43:33 +01002void ch_logfile(char_u *fname, char_u *opt);
Bram Moolenaar81661fb2016-02-18 22:23:34 +01003int ch_log_active(void);
Bram Moolenaar77073442016-02-13 23:23:53 +01004channel_T *add_channel(void);
Bram Moolenaarb9c31e72016-09-29 15:18:57 +02005int has_any_channel(void);
Bram Moolenaar8e2c9422016-03-12 13:43:33 +01006int channel_unref(channel_T *channel);
Bram Moolenaar107e1ee2016-04-08 17:07:19 +02007int free_unused_channels_contents(int copyID, int mask);
8void free_unused_channels(int copyID, int mask);
Bram Moolenaard04a0202016-01-26 23:30:18 +01009void channel_gui_register_all(void);
Bram Moolenaar4e221c92016-02-23 13:20:22 +010010channel_T *channel_open(char *hostname, int port_in, int waittime, void (*nb_close_cb)(void));
Bram Moolenaar8e2c9422016-03-12 13:43:33 +010011channel_T *channel_open_func(typval_T *argvars);
Bram Moolenaard8070362016-02-15 21:56:54 +010012void channel_set_pipes(channel_T *channel, sock_T in, sock_T out, sock_T err);
Bram Moolenaar014069a2016-03-03 22:51:40 +010013void channel_set_job(channel_T *channel, job_T *job, jobopt_T *options);
Bram Moolenaar3a97bb32019-06-01 13:28:35 +020014void channel_set_req_callback(channel_T *channel, ch_part_T part, callback_T *callback, int id);
Bram Moolenaare0f76d02016-05-09 20:38:53 +020015void channel_buffer_free(buf_T *buf);
Bram Moolenaar8b877ac2016-03-28 19:16:20 +020016void channel_write_any_lines(void);
Bram Moolenaar99ef0622016-03-06 20:22:25 +010017void channel_write_new_lines(buf_T *buf);
Bram Moolenaardc0ccae2016-10-09 17:28:01 +020018readq_T *channel_peek(channel_T *channel, ch_part_T part);
Bram Moolenaar5f1032d2016-06-07 22:16:36 +020019char_u *channel_first_nl(readq_T *node);
Bram Moolenaar6e5ea8d2019-01-12 22:47:31 +010020char_u *channel_get(channel_T *channel, ch_part_T part, int *outlen);
Bram Moolenaardc0ccae2016-10-09 17:28:01 +020021void channel_consume(channel_T *channel, ch_part_T part, int len);
22int channel_collapse(channel_T *channel, ch_part_T part, int want_nl);
Bram Moolenaar77073442016-02-13 23:23:53 +010023int channel_can_write_to(channel_T *channel);
24int channel_is_open(channel_T *channel);
Bram Moolenaar4b785f62016-11-29 21:54:44 +010025int channel_has_readahead(channel_T *channel, ch_part_T part);
Bram Moolenaar7ef38102016-09-26 22:36:58 +020026char *channel_status(channel_T *channel, int req_part);
Bram Moolenaar03602ec2016-03-20 20:57:45 +010027void channel_info(channel_T *channel, dict_T *dict);
Bram Moolenaar8b374212016-02-24 20:43:06 +010028void channel_close(channel_T *channel, int invoke_close_cb);
Bram Moolenaar0874a832016-09-01 15:11:51 +020029void channel_close_in(channel_T *channel);
Bram Moolenaar77073442016-02-13 23:23:53 +010030void channel_clear(channel_T *channel);
31void channel_free_all(void);
Bram Moolenaar6e5ea8d2019-01-12 22:47:31 +010032void common_channel_read(typval_T *argvars, typval_T *rettv, int raw, int blob);
Bram Moolenaardc0ccae2016-10-09 17:28:01 +020033channel_T *channel_fd2channel(sock_T fd, ch_part_T *partp);
Bram Moolenaar13ebb032017-08-26 22:02:51 +020034void channel_handle_events(int only_keep_open);
Bram Moolenaar4ab79682017-08-27 14:50:47 +020035int channel_any_keep_open(void);
Bram Moolenaar97bd5e62017-08-18 20:50:30 +020036void channel_set_nonblock(channel_T *channel, ch_part_T part);
Bram Moolenaar13ebb032017-08-26 22:02:51 +020037int channel_send(channel_T *channel, ch_part_T part, char_u *buf_arg, int len_arg, char *fun);
Bram Moolenaar8e2c9422016-03-12 13:43:33 +010038void ch_expr_common(typval_T *argvars, typval_T *rettv, int eval);
39void ch_raw_common(typval_T *argvars, typval_T *rettv, int eval);
Bram Moolenaarf3360612017-10-01 16:21:31 +020040int channel_poll_setup(int nfd_in, void *fds_in, int *towait);
Bram Moolenaare0874f82016-01-24 20:36:41 +010041int channel_poll_check(int ret_in, void *fds_in);
Bram Moolenaarf3360612017-10-01 16:21:31 +020042int channel_select_setup(int maxfd_in, void *rfds_in, void *wfds_in, struct timeval *tv, struct timeval **tvp);
Bram Moolenaar8b877ac2016-03-28 19:16:20 +020043int channel_select_check(int ret_in, void *rfds_in, void *wfds_in);
Bram Moolenaard7ece102016-02-02 23:23:02 +010044int channel_parse_messages(void);
Bram Moolenaar8a8199e2016-11-26 15:13:33 +010045int channel_any_readahead(void);
Bram Moolenaar4b6a6dc2016-02-04 22:49:49 +010046int set_ref_in_channel(int copyID);
Bram Moolenaardc0ccae2016-10-09 17:28:01 +020047ch_part_T channel_part_send(channel_T *channel);
48ch_part_T channel_part_read(channel_T *channel);
49ch_mode_T channel_get_mode(channel_T *channel, ch_part_T part);
50int channel_get_timeout(channel_T *channel, ch_part_T part);
Bram Moolenaar8e2c9422016-03-12 13:43:33 +010051void clear_job_options(jobopt_T *opt);
Bram Moolenaar0e4c1de2016-04-07 21:40:38 +020052void free_job_options(jobopt_T *opt);
Bram Moolenaar08d384f2017-08-11 21:51:23 +020053int get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2);
Bram Moolenaar655da312016-05-28 22:22:34 +020054void job_free_all(void);
Bram Moolenaarb0b98d52018-05-05 21:01:00 +020055int job_any_running(void);
Bram Moolenaardcaa6132017-08-13 17:13:09 +020056int win32_build_cmd(list_T *l, garray_T *gap);
Bram Moolenaar08d384f2017-08-11 21:51:23 +020057void job_cleanup(job_T *job);
Bram Moolenaarb8d49052016-05-01 14:22:16 +020058int set_ref_in_job(int copyID);
Bram Moolenaar8e2c9422016-03-12 13:43:33 +010059void job_unref(job_T *job);
Bram Moolenaar107e1ee2016-04-08 17:07:19 +020060int free_unused_jobs_contents(int copyID, int mask);
61void free_unused_jobs(int copyID, int mask);
Bram Moolenaar08d384f2017-08-11 21:51:23 +020062job_T *job_alloc(void);
Bram Moolenaar8e2c9422016-03-12 13:43:33 +010063void job_set_options(job_T *job, jobopt_T *opt);
64void job_stop_on_exit(void);
Bram Moolenaarcf7c11a2016-06-02 20:05:26 +020065int has_pending_job(void);
Bram Moolenaarcd1a62d2018-12-14 21:32:02 +010066int job_check_ended(void);
Bram Moolenaar493359e2018-06-12 20:25:52 +020067job_T *job_start(typval_T *argvars, char **argv_arg, jobopt_T *opt_arg, int is_terminal);
Bram Moolenaar8e2c9422016-03-12 13:43:33 +010068char *job_status(job_T *job);
Bram Moolenaar96ca27a2017-07-17 23:20:24 +020069int job_stop(job_T *job, typval_T *argvars, char *type);
Bram Moolenaarf2732452018-06-03 14:47:35 +020070void invoke_prompt_callback(void);
Bram Moolenaar0e5979a2018-06-17 19:36:33 +020071int invoke_prompt_interrupt(void);
Bram Moolenaar0a1f56f2019-06-24 00:43:35 +020072void f_prompt_setcallback(typval_T *argvars, typval_T *rettv);
73void f_prompt_setinterrupt(typval_T *argvars, typval_T *rettv);
74void f_prompt_setprompt(typval_T *argvars, typval_T *rettv);
75void f_ch_canread(typval_T *argvars, typval_T *rettv);
76void f_ch_close(typval_T *argvars, typval_T *rettv);
77void f_ch_close_in(typval_T *argvars, typval_T *rettv);
78void f_ch_getbufnr(typval_T *argvars, typval_T *rettv);
79void f_ch_getjob(typval_T *argvars, typval_T *rettv);
80void f_ch_info(typval_T *argvars, typval_T *rettv);
81void f_ch_log(typval_T *argvars, typval_T *rettv);
82void f_ch_logfile(typval_T *argvars, typval_T *rettv);
83void f_ch_open(typval_T *argvars, typval_T *rettv);
84void f_ch_read(typval_T *argvars, typval_T *rettv);
85void f_ch_readblob(typval_T *argvars, typval_T *rettv);
86void f_ch_readraw(typval_T *argvars, typval_T *rettv);
87void f_ch_evalexpr(typval_T *argvars, typval_T *rettv);
88void f_ch_sendexpr(typval_T *argvars, typval_T *rettv);
89void f_ch_evalraw(typval_T *argvars, typval_T *rettv);
90void f_ch_sendraw(typval_T *argvars, typval_T *rettv);
91void f_ch_setoptions(typval_T *argvars, typval_T *rettv);
92void f_ch_status(typval_T *argvars, typval_T *rettv);
93void f_job_getchannel(typval_T *argvars, typval_T *rettv);
94void f_job_info(typval_T *argvars, typval_T *rettv);
95void f_job_setoptions(typval_T *argvars, typval_T *rettv);
96void f_job_start(typval_T *argvars, typval_T *rettv);
97void f_job_status(typval_T *argvars, typval_T *rettv);
98void f_job_stop(typval_T *argvars, typval_T *rettv);
Bram Moolenaare0874f82016-01-24 20:36:41 +010099/* vim: set ft=c : */