xref: /dpdk/examples/pipeline/conn.h (revision 5f657a7fbe8697b3c36fb2987824e803f1a6cb02)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2020 Intel Corporation
3  */
4 
5 #ifndef __INCLUDE_CONN_H__
6 #define __INCLUDE_CONN_H__
7 
8 #include <stdint.h>
9 
10 struct conn;
11 
12 #ifndef CONN_WELCOME_LEN_MAX
13 #define CONN_WELCOME_LEN_MAX                               1024
14 #endif
15 
16 #ifndef CONN_PROMPT_LEN_MAX
17 #define CONN_PROMPT_LEN_MAX                                16
18 #endif
19 
20 typedef void
21 (*conn_msg_handle_t)(char *msg_in,
22 		     char *msg_out,
23 		     size_t msg_out_len_max,
24 		     void *arg);
25 
26 struct conn_params {
27 	const char *welcome;
28 	const char *prompt;
29 	const char *addr;
30 	uint16_t port;
31 	size_t buf_size;
32 	size_t msg_in_len_max;
33 	size_t msg_out_len_max;
34 	conn_msg_handle_t msg_handle;
35 	void *msg_handle_arg;
36 };
37 
38 struct conn *
39 conn_init(struct conn_params *p);
40 
41 void
42 conn_free(struct conn *conn);
43 
44 int
45 conn_poll_for_conn(struct conn *conn);
46 
47 int
48 conn_poll_for_msg(struct conn *conn);
49 
50 #endif
51