xref: /dpdk/app/graph/conn.h (revision 3f90eda5b7fb39f70de4d25fd7562ed9f330bebc)
1*3f90eda5SSunil Kumar Kori /* SPDX-License-Identifier: BSD-3-Clause
2*3f90eda5SSunil Kumar Kori  * Copyright(c) 2023 Marvell.
3*3f90eda5SSunil Kumar Kori  */
4*3f90eda5SSunil Kumar Kori 
5*3f90eda5SSunil Kumar Kori #ifndef APP_GRAPH_CONN_H
6*3f90eda5SSunil Kumar Kori #define APP_GRAPH_CONN_H
7*3f90eda5SSunil Kumar Kori 
8*3f90eda5SSunil Kumar Kori #define CONN_WELCOME_LEN_MAX 1024
9*3f90eda5SSunil Kumar Kori #define CONN_PROMPT_LEN_MAX 16
10*3f90eda5SSunil Kumar Kori 
11*3f90eda5SSunil Kumar Kori typedef void (*conn_msg_handle_t)(char *msg_in, char *msg_out, size_t msg_out_len_max, void *arg);
12*3f90eda5SSunil Kumar Kori 
13*3f90eda5SSunil Kumar Kori struct conn {
14*3f90eda5SSunil Kumar Kori 	char *welcome;
15*3f90eda5SSunil Kumar Kori 	char *prompt;
16*3f90eda5SSunil Kumar Kori 	char *buf;
17*3f90eda5SSunil Kumar Kori 	char *msg_in;
18*3f90eda5SSunil Kumar Kori 	char *msg_out;
19*3f90eda5SSunil Kumar Kori 	size_t buf_size;
20*3f90eda5SSunil Kumar Kori 	size_t msg_in_len_max;
21*3f90eda5SSunil Kumar Kori 	size_t msg_out_len_max;
22*3f90eda5SSunil Kumar Kori 	size_t msg_in_len;
23*3f90eda5SSunil Kumar Kori 	int fd_server;
24*3f90eda5SSunil Kumar Kori 	int fd_client_group;
25*3f90eda5SSunil Kumar Kori 	conn_msg_handle_t msg_handle;
26*3f90eda5SSunil Kumar Kori 	void *msg_handle_arg;
27*3f90eda5SSunil Kumar Kori };
28*3f90eda5SSunil Kumar Kori 
29*3f90eda5SSunil Kumar Kori struct conn_params {
30*3f90eda5SSunil Kumar Kori 	const char *welcome;
31*3f90eda5SSunil Kumar Kori 	const char *prompt;
32*3f90eda5SSunil Kumar Kori 	const char *addr;
33*3f90eda5SSunil Kumar Kori 	uint16_t port;
34*3f90eda5SSunil Kumar Kori 	size_t buf_size;
35*3f90eda5SSunil Kumar Kori 	size_t msg_in_len_max;
36*3f90eda5SSunil Kumar Kori 	size_t msg_out_len_max;
37*3f90eda5SSunil Kumar Kori 	conn_msg_handle_t msg_handle;
38*3f90eda5SSunil Kumar Kori 	void *msg_handle_arg;
39*3f90eda5SSunil Kumar Kori };
40*3f90eda5SSunil Kumar Kori 
41*3f90eda5SSunil Kumar Kori struct conn *conn_init(struct conn_params *p);
42*3f90eda5SSunil Kumar Kori void conn_free(struct conn *conn);
43*3f90eda5SSunil Kumar Kori int conn_req_poll(struct conn *conn);
44*3f90eda5SSunil Kumar Kori int conn_msg_poll(struct conn *conn);
45*3f90eda5SSunil Kumar Kori 
46*3f90eda5SSunil Kumar Kori #endif
47