mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	asyncio: Add set_protocol / get_protocol methods to Transports
This commit is contained in:
		
							parent
							
								
									06e18a7c24
								
							
						
					
					
						commit
						a05a6ef1ca
					
				
					 7 changed files with 45 additions and 0 deletions
				
			
		|  | @ -87,6 +87,12 @@ def __repr__(self): | ||||||
|     def _start(self, args, shell, stdin, stdout, stderr, bufsize, **kwargs): |     def _start(self, args, shell, stdin, stdout, stderr, bufsize, **kwargs): | ||||||
|         raise NotImplementedError |         raise NotImplementedError | ||||||
| 
 | 
 | ||||||
|  |     def set_protocol(self, protocol): | ||||||
|  |         self._protocol = protocol | ||||||
|  | 
 | ||||||
|  |     def get_protocol(self): | ||||||
|  |         return self._protocol | ||||||
|  | 
 | ||||||
|     def is_closing(self): |     def is_closing(self): | ||||||
|         return self._closed |         return self._closed | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -66,6 +66,12 @@ def __repr__(self): | ||||||
|     def _set_extra(self, sock): |     def _set_extra(self, sock): | ||||||
|         self._extra['pipe'] = sock |         self._extra['pipe'] = sock | ||||||
| 
 | 
 | ||||||
|  |     def set_protocol(self, protocol): | ||||||
|  |         self._protocol = protocol | ||||||
|  | 
 | ||||||
|  |     def get_protocol(self): | ||||||
|  |         return self._protocol | ||||||
|  | 
 | ||||||
|     def is_closing(self): |     def is_closing(self): | ||||||
|         return self._closing |         return self._closing | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -560,6 +560,12 @@ def __repr__(self): | ||||||
|     def abort(self): |     def abort(self): | ||||||
|         self._force_close(None) |         self._force_close(None) | ||||||
| 
 | 
 | ||||||
|  |     def set_protocol(self, protocol): | ||||||
|  |         self._protocol = protocol | ||||||
|  | 
 | ||||||
|  |     def get_protocol(self): | ||||||
|  |         return self._protocol | ||||||
|  | 
 | ||||||
|     def is_closing(self): |     def is_closing(self): | ||||||
|         return self._closing |         return self._closing | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -305,6 +305,12 @@ def get_extra_info(self, name, default=None): | ||||||
|         """Get optional transport information.""" |         """Get optional transport information.""" | ||||||
|         return self._ssl_protocol._get_extra_info(name, default) |         return self._ssl_protocol._get_extra_info(name, default) | ||||||
| 
 | 
 | ||||||
|  |     def set_protocol(self, protocol): | ||||||
|  |         self._app_protocol = protocol | ||||||
|  | 
 | ||||||
|  |     def get_protocol(self): | ||||||
|  |         return self._app_protocol | ||||||
|  | 
 | ||||||
|     def is_closing(self): |     def is_closing(self): | ||||||
|         return self._closed |         return self._closed | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -33,6 +33,14 @@ def close(self): | ||||||
|         """ |         """ | ||||||
|         raise NotImplementedError |         raise NotImplementedError | ||||||
| 
 | 
 | ||||||
|  |     def set_protocol(self, protocol): | ||||||
|  |         """Set a new protocol.""" | ||||||
|  |         raise NotImplementedError | ||||||
|  | 
 | ||||||
|  |     def get_protocol(self): | ||||||
|  |         """Return the current protocol.""" | ||||||
|  |         raise NotImplementedError | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class ReadTransport(BaseTransport): | class ReadTransport(BaseTransport): | ||||||
|     """Interface for read-only transports.""" |     """Interface for read-only transports.""" | ||||||
|  |  | ||||||
|  | @ -374,6 +374,12 @@ def pause_reading(self): | ||||||
|     def resume_reading(self): |     def resume_reading(self): | ||||||
|         self._loop.add_reader(self._fileno, self._read_ready) |         self._loop.add_reader(self._fileno, self._read_ready) | ||||||
| 
 | 
 | ||||||
|  |     def set_protocol(self, protocol): | ||||||
|  |         self._protocol = protocol | ||||||
|  | 
 | ||||||
|  |     def get_protocol(self): | ||||||
|  |         return self._protocol | ||||||
|  | 
 | ||||||
|     def is_closing(self): |     def is_closing(self): | ||||||
|         return self._closing |         return self._closing | ||||||
| 
 | 
 | ||||||
|  | @ -570,6 +576,12 @@ def write_eof(self): | ||||||
|             self._loop.remove_reader(self._fileno) |             self._loop.remove_reader(self._fileno) | ||||||
|             self._loop.call_soon(self._call_connection_lost, None) |             self._loop.call_soon(self._call_connection_lost, None) | ||||||
| 
 | 
 | ||||||
|  |     def set_protocol(self, protocol): | ||||||
|  |         self._protocol = protocol | ||||||
|  | 
 | ||||||
|  |     def get_protocol(self): | ||||||
|  |         return self._protocol | ||||||
|  | 
 | ||||||
|     def is_closing(self): |     def is_closing(self): | ||||||
|         return self._closing |         return self._closing | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -25,6 +25,7 @@ def ssl_protocol(self, waiter=None): | ||||||
|         sslcontext = test_utils.dummy_ssl_context() |         sslcontext = test_utils.dummy_ssl_context() | ||||||
|         app_proto = asyncio.Protocol() |         app_proto = asyncio.Protocol() | ||||||
|         proto = sslproto.SSLProtocol(self.loop, app_proto, sslcontext, waiter) |         proto = sslproto.SSLProtocol(self.loop, app_proto, sslcontext, waiter) | ||||||
|  |         self.assertIs(proto._app_transport.get_protocol(), app_proto) | ||||||
|         self.addCleanup(proto._app_transport.close) |         self.addCleanup(proto._app_transport.close) | ||||||
|         return proto |         return proto | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yury Selivanov
						Yury Selivanov