def forward_publish_response(self, result): self.logger.info("forward publish response %s", result) with self._datalock: if len(self._publishdata_queue) == 0: self.logger.warning("Error server wants to send publish answer but no publish request is available") return requestdata = self._publishdata_queue.pop(0) response = ua.PublishResponse() response.Parameters = result self.send_response(requestdata.requesthdr.RequestHandle, requestdata.algohdr, requestdata.seqhdr, response)
def forward_publish_response(self, result): self.logger.info("forward publish response %s", result) with self._datalock: while True: if len(self._publishdata_queue) == 0: self._publish_result_queue.append(result) self.logger.info("Server wants to send publish answer but no publish request is available, enqueing notification, length of result queue is %s", len(self._publish_result_queue)) return requestdata = self._publishdata_queue.pop(0) if time.time() - requestdata.timestamp < requestdata.requesthdr.TimeoutHint / 1000: break response = ua.PublishResponse() response.Parameters = result self.send_response(requestdata.requesthdr.RequestHandle, requestdata.algohdr, requestdata.seqhdr, response)