| | |
| | | } |
| | | auto end_time = steady_clock::now() + milliseconds(timeout_ms); |
| | | |
| | | while (state_ != eStateUnregistered && steady_clock::now() < end_time) { |
| | | while (!Valid() && steady_clock::now() < end_time) { |
| | | std::this_thread::yield(); |
| | | } |
| | | if (state_ != eStateUnregistered) { |
| | | if (!Valid()) { |
| | | SetLastError(eError, kErrMsgNotInit); |
| | | return false; |
| | | } |
| | |
| | | State state() const { return state_.load(); } |
| | | bool IsOnline() { return state() == eStateOnline; } |
| | | bool Init(); |
| | | bool Valid() const { return !sockets_.empty(); } |
| | | bool Valid() const { return state() != eStateUninited; } |
| | | std::mutex mutex_; |
| | | MQId ssn_id_ = 0; |
| | | std::atomic<State> state_; |