bool ConnectNode::ignoreCallbackWhenReconnecting()

in nlsCppSdk/transport/connectNode.cpp [4572:4619]


bool ConnectNode::ignoreCallbackWhenReconnecting(NlsEvent::EventType eventType,
                                                 int code) {
#ifdef ENABLE_CONTINUED
  if (_request) {
    if (_request->getRequestParam()->_enableReconnect) {
      if (eventType == NlsEvent::TaskFailed) {
        if ((code >= 50000000 && code < 60000000) || code == DefaultErrorCode ||
            code == SysErrorCode || code == UnknownWsHeadType ||
            code == HttpConnectFailed || code == SysConnectFailed ||
            code == ClientError || code == ConcurrencyExceed) {
          if (_reconnection.state == NodeReconnection::NoReconnection ||
              _reconnection.state ==
                  NodeReconnection::NewReconnectionStarting) {
            _reconnection.interruption_timestamp_ms =
                utility::TextUtils::GetTimestampMs();
            _reconnection.reconnected_count++;
            _reconnection.state = NodeReconnection::WillReconnect;
          }
        }
      }

      if (_reconnection.state == NodeReconnection::WillReconnect ||
          _reconnection.state == NodeReconnection::TriggerReconnection) {
        if (eventType == NlsEvent::TaskFailed || eventType == NlsEvent::Close) {
          if (_reconnection.reconnected_count <=
              NodeReconnection::max_try_count) {
            NlsEvent tmp;
            LOG_INFO(
                "Node(%p) state(%d) get status code is %d with %s, try %d "
                "times, should reconnecting "
                "and "
                "ignore callback.",
                this, _reconnection.state, code,
                tmp.getMsgTypeString(eventType).c_str(),
                _reconnection.reconnected_count);
            return true;
          } else {
            _reconnection.state = NodeReconnection::NoReconnection;
            LOG_INFO("Node(%p) failed %d times, should boot normally.", this,
                     _reconnection.reconnected_count);
          }
        }
      }
    }
  }
#endif
  return false;
}