def getNextBindingForDelivery(self):
        binding = None
        # If we now have more trx/rx bindings than have been used
        # then iterate through our trx/rx binds until we find one
        # that hasn't yet been used
        if len(self._delivery_binding_history) < self.getBindingCountForType(pdu_types.CommandId.bind_receiver):
            for binding in self._binds[pdu_types.CommandId.bind_receiver] + self._binds[pdu_types.CommandId.bind_transceiver]:
                if not binding in self._delivery_binding_history:
                    break
            else:
                binding = None
        
        # Otherwise send on the last trx/rx binding delivered on, as
        # long as it is still bound
        while binding is None and self._delivery_binding_history:
            # get last binding used
            _binding = self._delivery_binding_history.popleft()
            # check it is still bound
            if _binding in self._binds[_binding.bind_type]:
                # If so then use it
                binding = _binding
        
        if binding is not None:
            self._delivery_binding_history.append(binding)
        return binding
Return the back pair of the structure
dataset/ETHPy150Open mozes/smpp.twisted/smpp/twisted/server.py/SMPPBindManager.getNextBindingForDelivery--crossover with--dataset/ETHPy150Open lsbardel/python-stdnet/stdnet/odm/struct.py/OrderedMixin.back