покритикуйте код. Можно ли его сделать проще/читабельнее? void NMSPort::shutdown_handler(const Engine::Event& evt) { // try to disconnect if line is active NCC_LINE_STATUS line_status; char *message = NULL; DWORD retcode = nccGetLineStatus(ctx, &line_status, sizeof(line_status), NULL, 0); if(retcode == SUCCESS) { if(line_status.state == NCC_LINESTATE_ACTIVE) { retcode = nccDisconnectCall(_callh, NULL); if(retcode == SUCCESS) { Engine::Event evt(Engine::Event::EVT_CC_CALL_DISCONNECTED); if(wait_for_specific_event(evt, ENG_TIMEOUT)) { if(evt.id() == Engine::Event::EVT_ENG_TIMEOUT) { message = "shutdown_handler: wait_for_specific_event() timeout"; } else { retcode = nccReleaseCall(_callh, NULL); if(retcode == SUCCESS) { evt = Engine::Event(Engine::Event::EVT_CC_CALL_RELEASED); if(wait_for_specific_event(evt, ENG_TIMEOUT)) { if(evt.id() == Engine::Event::EVT_ENG_TIMEOUT) { message = "shutdown_handler: wait_for_specific_event() timeout"; } } else { message = "shutdown_handler: wait_for_specific_event() failed"; } } else { message = "shutdown_handler: nccReleaseCall() failed"; } } } else { message = "shutdown_handler: wait_for_specific_event() failed"; } } else { message = "shutdown_handler: nccDisconnectCall() failed"; } } } else { message = "shutdown_handler: nccGetLineStatus() failed"; } if(message) show_error(message); }