async def _client_ready_async(self): """Determine whether the client is ready to start sending messages. To be ready, the connection must be open and authentication complete, The Session, Link and MessageSender must be open and in non-errored states. :rtype: bool :raises: ~uamqp.errors.MessageHandlerError if the MessageSender goes into an error state. """ # pylint: disable=protected-access if not self.message_handler: self.message_handler = self.sender_type( self._session, self._name, self._remote_address, name='sender-link-{}'.format(uuid.uuid4()), debug=self._debug_trace, send_settle_mode=self._send_settle_mode, receive_settle_mode=self._receive_settle_mode, max_message_size=self._max_message_size, properties=self._link_properties, error_policy=self._error_policy, encoding=self._encoding, loop=self.loop) await asyncio.shield(self.message_handler.open_async(), loop=self.loop) return False if self.message_handler.get_state() == constants.MessageSenderState.Error: raise errors.MessageHandlerError( "Message Sender Client is in an error state. " "Please confirm credentials and access permissions." "\nSee debug trace for more details.") if self.message_handler.get_state() != constants.MessageSenderState.Open: return False return True
async def _client_ready_async(self): """Determine whether the client is ready to start receiving messages. To be ready, the connection must be open and authentication complete, The Session, Link and MessageReceiver must be open and in non-errored states. :rtype: bool :raises: ~uamqp.errors.MessageHandlerError if the MessageReceiver goes into an error state. """ # pylint: disable=protected-access if not self.message_handler: self.message_handler = self.receiver_type( self._session, self._remote_address, self._name, on_message_received=self._message_received, name='receiver-link-{}'.format(uuid.uuid4()), debug=self._debug_trace, receive_settle_mode=self._receive_settle_mode, send_settle_mode=self._send_settle_mode, prefetch=0, # set to 0 as not to receive messages during connection establishment, set prefetch later max_message_size=self._max_message_size, properties=self._link_properties, error_policy=self._error_policy, encoding=self._encoding, desired_capabilities=self._desired_capabilities, loop=self.loop) await asyncio.shield(self.message_handler.open_async(), loop=self.loop) return False if self.message_handler.get_state() == constants.MessageReceiverState.Error: raise errors.MessageHandlerError( "Message Receiver Client is in an error state. " "Please confirm credentials and access permissions." "\nSee debug trace for more details.") if self.message_handler.get_state() != constants.MessageReceiverState.Open: self._last_activity_timestamp = self._counter.get_current_ms() return False # once the receiver client is ready/connection established, we set prefetch as per the config self.message_handler._link.set_prefetch_count(self._prefetch) # pylint: disable=protected-access return True
def _client_ready(self): """Determine whether the client is ready to start receiving messages. To be ready, the connection must be open and authentication complete, The Session, Link and MessageReceiver must be open and in non-errored states. :rtype: bool :raises: ~uamqp.errors.MessageHandlerError if the MessageReceiver goes into an error state. """ # pylint: disable=protected-access if not self._message_receiver: self._message_receiver = self.receiver_type( self._session, self._remote_address, self._name, on_message_received=self._message_received, name='receiver-link-{}'.format(uuid.uuid4()), debug=self._debug_trace, receive_settle_mode=self._receive_settle_mode, prefetch=self._prefetch, max_message_size=self._max_message_size, properties=self._link_properties, error_policy=self._error_policy, encoding=self._encoding) self._message_receiver.open() return False if self._message_receiver.get_state( ) == constants.MessageReceiverState.Error: raise errors.MessageHandlerError( "Message Receiver Client is in an error state. " "Please confirm credentials and access permissions." "\nSee debug trace for more details.") if self._message_receiver.get_state( ) != constants.MessageReceiverState.Open: self._last_activity_timestamp = self._counter.get_current_ms() return False return True