blob: e63e1361808dfa4b97a165084648c211cbb4591d [file] [log] [blame]
Willy Tarreaucff64112008-11-03 06:26:53 +01001/*
Willy Tarreau8e89b842009-10-18 23:56:35 +02002 * include/proto/stream_interface.h
3 * This file contains stream_interface function prototypes
4 *
5 * Copyright (C) 2000-2009 Willy Tarreau - w@1wt.eu
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation, version 2.1
10 * exclusively.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
Willy Tarreaucff64112008-11-03 06:26:53 +010021
22#ifndef _PROTO_STREAM_INTERFACE_H
23#define _PROTO_STREAM_INTERFACE_H
24
25#include <stdlib.h>
26
27#include <common/config.h>
28#include <types/stream_interface.h>
29
30
31/* main event functions used to move data between sockets and buffers */
Willy Tarreau269358d2009-09-20 20:14:49 +020032int stream_int_check_timeouts(struct stream_interface *si);
Willy Tarreaucff64112008-11-03 06:26:53 +010033void stream_int_report_error(struct stream_interface *si);
Willy Tarreaudded32d2008-11-30 19:48:07 +010034void stream_int_retnclose(struct stream_interface *si, const struct chunk *msg);
Willy Tarreau5d881d02009-12-27 22:51:06 +010035void stream_int_cond_close(struct stream_interface *si, const struct chunk *msg);
Willy Tarreaucff64112008-11-03 06:26:53 +010036
Willy Tarreaufb90d942009-09-05 20:57:35 +020037/* functions used when running a stream interface as a task */
38void stream_int_update(struct stream_interface *si);
39void stream_int_update_embedded(struct stream_interface *si);
40void stream_int_shutr(struct stream_interface *si);
41void stream_int_shutw(struct stream_interface *si);
42void stream_int_chk_rcv(struct stream_interface *si);
43void stream_int_chk_snd(struct stream_interface *si);
44
45struct task *stream_int_register_handler(struct stream_interface *si,
46 void (*fct)(struct stream_interface *));
47struct task *stream_int_register_handler_task(struct stream_interface *si,
48 struct task *(*fct)(struct task *));
49void stream_int_unregister_handler(struct stream_interface *si);
50
Willy Tarreaucff64112008-11-03 06:26:53 +010051#endif /* _PROTO_STREAM_INTERFACE_H */
52
53/*
54 * Local variables:
55 * c-indent-level: 8
56 * c-basic-offset: 8
57 * End:
58 */