| 253 | } |
| 254 | |
| 255 | struct hstcpsvr_worker : public hstcpsvr_worker_i, private noncopyable { |
| 256 | hstcpsvr_worker(const hstcpsvr_worker_arg& arg); |
| 257 | virtual void run(); |
| 258 | private: |
| 259 | const hstcpsvr_shared_c& cshared; |
| 260 | volatile hstcpsvr_shared_v& vshared; |
| 261 | long worker_id; |
| 262 | dbcontext_ptr dbctx; |
| 263 | hstcpsvr_conns_type conns; /* conns refs dbctx */ |
| 264 | time_t last_check_time; |
| 265 | std::vector<pollfd> pfds; |
| 266 | #ifdef __linux__ |
| 267 | std::vector<epoll_event> events_vec; |
| 268 | auto_file epoll_fd; |
| 269 | #endif |
| 270 | bool accept_enabled; |
| 271 | int accept_balance; |
| 272 | std::vector<string_ref> invalues_work; |
| 273 | std::vector<record_filter> filters_work; |
| 274 | private: |
| 275 | int run_one_nb(); |
| 276 | int run_one_ep(); |
| 277 | void execute_lines(hstcpsvr_conn& conn); |
| 278 | void execute_line(char *start, char *finish, hstcpsvr_conn& conn); |
| 279 | void do_open_index(char *start, char *finish, hstcpsvr_conn& conn); |
| 280 | void do_exec_on_index(char *cmd_begin, char *cmd_end, char *start, |
| 281 | char *finish, hstcpsvr_conn& conn); |
| 282 | void do_authorization(char *start, char *finish, hstcpsvr_conn& conn); |
| 283 | }; |
| 284 | |
| 285 | hstcpsvr_worker::hstcpsvr_worker(const hstcpsvr_worker_arg& arg) |
| 286 | : cshared(*arg.cshared), vshared(*arg.vshared), worker_id(arg.worker_id), |
nothing calls this directly
no outgoing calls
no test coverage detected