| 
									
										
										
										
											2015-10-20 12:33:18 +05:30
										 |  |  | from flask import current_app | 
					
						
							|  |  |  | from .registry import DriverRegistry | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-02 14:54:01 +05:30
										 |  |  | def get_driver(type, app=None): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if app is not None: | 
					
						
							|  |  |  |         DriverRegistry.load_drivers() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     drivers = getattr(app or current_app, '_pgadmin_server_drivers', None) | 
					
						
							| 
									
										
										
										
											2015-10-20 12:33:18 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |     if drivers is None or not isinstance(drivers, dict): | 
					
						
							|  |  |  |         drivers = dict() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if type in drivers: | 
					
						
							|  |  |  |         return drivers[type] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     driver = DriverRegistry.create(type) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if driver is not None: | 
					
						
							|  |  |  |         drivers[type] = driver | 
					
						
							| 
									
										
										
										
											2016-01-02 14:54:01 +05:30
										 |  |  |         setattr(app or current_app, '_pgadmin_server_drivers', drivers) | 
					
						
							| 
									
										
										
										
											2015-10-20 12:33:18 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |     return driver | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def init_app(app): | 
					
						
							|  |  |  |     drivers = dict() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     setattr(app, '_pgadmin_server_drivers', drivers) | 
					
						
							|  |  |  |     DriverRegistry.load_drivers() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-02 14:54:01 +05:30
										 |  |  |     return drivers | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-20 12:33:18 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | def ping(): | 
					
						
							|  |  |  |     drivers = getattr(current_app, '_pgadmin_server_drivers', None) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for type in drivers: | 
					
						
							|  |  |  |         drivers[type].gc() |