send request to server, lower-level method timeout is the timeout written in ua header returns future
(self, request, callback=None, timeout=1000, message_type=ua.MessageType.SecureMessage)
| 43 | self._thread.start() |
| 44 | |
| 45 | def _send_request(self, request, callback=None, timeout=1000, message_type=ua.MessageType.SecureMessage): |
| 46 | """ |
| 47 | send request to server, lower-level method |
| 48 | timeout is the timeout written in ua header |
| 49 | returns future |
| 50 | """ |
| 51 | with self._lock: |
| 52 | request.RequestHeader = self._create_request_header(timeout) |
| 53 | self.logger.debug("Sending: %s", request) |
| 54 | try: |
| 55 | binreq = struct_to_binary(request) |
| 56 | except Exception: |
| 57 | # reset reqeust handle if any error |
| 58 | # see self._create_request_header |
| 59 | self._request_handle -= 1 |
| 60 | raise |
| 61 | self._request_id += 1 |
| 62 | future = Future() |
| 63 | if callback: |
| 64 | future.add_done_callback(callback) |
| 65 | self._callbackmap[self._request_id] = future |
| 66 | |
| 67 | # Change to the new security token if the connection has been renewed. |
| 68 | if self._connection.next_security_token.TokenId != 0: |
| 69 | self._connection.revolve_tokens() |
| 70 | |
| 71 | msg = self._connection.message_to_binary(binreq, message_type=message_type, request_id=self._request_id) |
| 72 | self._socket.write(msg) |
| 73 | return future |
| 74 | |
| 75 | def send_request(self, request, callback=None, timeout=1000, message_type=ua.MessageType.SecureMessage): |
| 76 | """ |
no test coverage detected