NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

httpFlaskService.py (1019B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\script\net\httpFlaskService.py
      2 from threading import Lock
      3 from werkzeug.wsgi import pop_path_info, peek_path_info
      4 
      5 class ServerPageSubDispatcher(object):
      6 
      7     def __init__(self, default_app, create_app):
      8         self.default_app = default_app
      9         self.create_app = create_app
     10         self.lock = Lock()
     11         self.instances = {}
     12 
     13     def get_application(self, prefix):
     14         with self.lock:
     15             app = self.instances.get(prefix)
     16             if app is None:
     17                 app = self.create_app(prefix)
     18                 self.instances[prefix] = app
     19             return app
     20 
     21     def __call__(self, environ, start_response):
     22         app = self.get_application(peek_path_info(environ))
     23         if app is not None:
     24             pop_path_info(environ)
     25         else:
     26             app = self.default_app
     27         return app(environ, start_response)
     28 
     29 
     30 class ServerPageApplication(object):
     31 
     32     def __init__(self):
     33         pass