blob: 794e60b2200749b132405e0dc5d495cb9b768b62 [file] [log] [blame]
Bram Moolenaare0874f82016-01-24 20:36:41 +01001/* channel.c */
Bram Moolenaar77073442016-02-13 23:23:53 +01002channel_T *add_channel(void);
Bram Moolenaarb9c31e72016-09-29 15:18:57 +02003int has_any_channel(void);
Bram Moolenaar8b5866d2020-09-05 15:48:51 +02004int channel_still_useful(channel_T *channel);
5int channel_can_close(channel_T *channel);
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 Moolenaarbfe13cc2020-04-12 17:53:12 +020010channel_T *channel_open(const char *hostname, int port, int waittime, void (*nb_close_cb)(void));
Bram Moolenaar8b5866d2020-09-05 15:48:51 +020011void ch_close_part(channel_T *channel, ch_part_T part);
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 Moolenaar8b5866d2020-09-05 15:48:51 +020014void channel_write_in(channel_T *channel);
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 Moolenaar8b374212016-02-24 20:43:06 +010025void channel_close(channel_T *channel, int invoke_close_cb);
Bram Moolenaar77073442016-02-13 23:23:53 +010026void channel_clear(channel_T *channel);
27void channel_free_all(void);
Bram Moolenaar0e57dd82019-09-16 22:56:03 +020028int channel_in_blocking_wait(void);
Bram Moolenaar4c5678f2022-11-30 18:12:19 +000029channel_T *get_channel_arg(typval_T *tv, int check_open, int reading, ch_part_T part);
Bram Moolenaar13ebb032017-08-26 22:02:51 +020030void channel_handle_events(int only_keep_open);
Bram Moolenaar4ab79682017-08-27 14:50:47 +020031int channel_any_keep_open(void);
Bram Moolenaar97bd5e62017-08-18 20:50:30 +020032void channel_set_nonblock(channel_T *channel, ch_part_T part);
Bram Moolenaar13ebb032017-08-26 22:02:51 +020033int channel_send(channel_T *channel, ch_part_T part, char_u *buf_arg, int len_arg, char *fun);
Bram Moolenaarf3360612017-10-01 16:21:31 +020034int channel_poll_setup(int nfd_in, void *fds_in, int *towait);
Bram Moolenaare0874f82016-01-24 20:36:41 +010035int channel_poll_check(int ret_in, void *fds_in);
Bram Moolenaarf3360612017-10-01 16:21:31 +020036int 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 +020037int channel_select_check(int ret_in, void *rfds_in, void *wfds_in);
Bram Moolenaard7ece102016-02-02 23:23:02 +010038int channel_parse_messages(void);
Bram Moolenaar8a8199e2016-11-26 15:13:33 +010039int channel_any_readahead(void);
Bram Moolenaar4b6a6dc2016-02-04 22:49:49 +010040int set_ref_in_channel(int copyID);
Bram Moolenaar0a1f56f2019-06-24 00:43:35 +020041void f_ch_canread(typval_T *argvars, typval_T *rettv);
42void f_ch_close(typval_T *argvars, typval_T *rettv);
43void f_ch_close_in(typval_T *argvars, typval_T *rettv);
44void f_ch_getbufnr(typval_T *argvars, typval_T *rettv);
45void f_ch_getjob(typval_T *argvars, typval_T *rettv);
46void f_ch_info(typval_T *argvars, typval_T *rettv);
Bram Moolenaar0a1f56f2019-06-24 00:43:35 +020047void f_ch_open(typval_T *argvars, typval_T *rettv);
48void f_ch_read(typval_T *argvars, typval_T *rettv);
49void f_ch_readblob(typval_T *argvars, typval_T *rettv);
50void f_ch_readraw(typval_T *argvars, typval_T *rettv);
51void f_ch_evalexpr(typval_T *argvars, typval_T *rettv);
52void f_ch_sendexpr(typval_T *argvars, typval_T *rettv);
53void f_ch_evalraw(typval_T *argvars, typval_T *rettv);
54void f_ch_sendraw(typval_T *argvars, typval_T *rettv);
55void f_ch_setoptions(typval_T *argvars, typval_T *rettv);
56void f_ch_status(typval_T *argvars, typval_T *rettv);
Bram Moolenaar1328bde2021-06-05 20:51:38 +020057char_u *channel_to_string_buf(typval_T *varp, char_u *buf);
Bram Moolenaare0874f82016-01-24 20:36:41 +010058/* vim: set ft=c : */