wait_and_handle_epoll_event currently handles multiple concerns (timer/subscription/shutdown). Refactor to improve separation of concerns: try to delete timer/subscription/shutdown specific operations from agnocast_epoll.hpp,cpp as much as possible. Also, event flags (SHUTDOWN_EVENT_FLAG, TIMER_EVENT_FLAG, etc.) are defined as separate constants. Consider organizing them into a more structured design (e.g., enum, dedicated header, or flag management class).