in uamqp/sender.py [0:0]
def __init__(self, session, source, target,
name=None,
send_settle_mode=constants.SenderSettleMode.Unsettled,
receive_settle_mode=constants.ReceiverSettleMode.PeekLock,
max_message_size=constants.MAX_MESSAGE_LENGTH_BYTES,
link_credit=None,
properties=None,
error_policy=None,
debug=False,
encoding='UTF-8',
desired_capabilities=None):
# pylint: disable=protected-access
if name:
self.name = name.encode(encoding) if isinstance(name, str) else name
else:
self.name = str(uuid.uuid4()).encode(encoding)
source = source.encode(encoding) if isinstance(source, str) else source
role = constants.Role.Sender
self.source = c_uamqp.Messaging.create_source(source)
self.target = target._address.value
self.error_policy = error_policy or errors.ErrorPolicy()
self._conn = session._conn
self._session = session
self._link = c_uamqp.create_link(session._session, self.name, role.value, self.source, self.target)
self._link.max_message_size = max_message_size
self._link.subscribe_to_detach_event(self)
if link_credit:
self._link.set_prefetch_count(link_credit)
if properties:
self._link.set_attach_properties(utils.data_factory(properties, encoding=encoding))
if send_settle_mode:
self.send_settle_mode = send_settle_mode
if receive_settle_mode:
self.receive_settle_mode = receive_settle_mode
if max_message_size:
self.max_message_size = max_message_size
if desired_capabilities:
self._link.set_desired_capabilities(desired_capabilities)
self._sender = c_uamqp.create_message_sender(self._link, self)
self._sender.set_trace(debug)
self._state = constants.MessageSenderState.Idle
self._error = None