aboutsummaryrefslogtreecommitdiff
path: root/net/stream_data.h
blob: b868625665aefd35f09dc7cf8b78c5bb39965342 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 * net stream generic functions
 *
 * Copyright Red Hat
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */

typedef struct NetStreamData {
    NetClientState nc;
    QIOChannel *ioc;
    guint ioc_read_tag;
    guint ioc_write_tag;
    SocketReadState rs;
    unsigned int send_index;      /* number of bytes sent*/
    QIOChannelFunc send;
    /* server data */
    QIOChannel *listen_ioc;
    QIONetListener *listener;
    QIONetListenerClientFunc listen;
} NetStreamData;

ssize_t net_stream_data_receive(NetStreamData *d, const uint8_t *buf,
                                size_t size);
void net_stream_data_rs_finalize(SocketReadState *rs);
gboolean net_stream_data_send(QIOChannel *ioc, GIOCondition condition,
                              NetStreamData *d);
int net_stream_data_client_connected(QIOTask *task, NetStreamData *d);
void net_stream_data_listen(QIONetListener *listener,
                            QIOChannelSocket *cioc,
                            NetStreamData *d);