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