OLD | NEW |
(Empty) | |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is govered by a BSD-style |
| 3 # license that can be found in the LICENSE file or at |
| 4 # https://developers.google.com/open-source/licenses/bsd |
| 5 |
| 6 """Service manager to initialize all services.""" |
| 7 |
| 8 from features import autolink |
| 9 from services import cachemanager_svc |
| 10 from services import config_svc |
| 11 from services import features_svc |
| 12 from services import issue_svc |
| 13 from services import project_svc |
| 14 from services import spam_svc |
| 15 from services import star_svc |
| 16 from services import user_svc |
| 17 from services import usergroup_svc |
| 18 |
| 19 |
| 20 svcs = None |
| 21 |
| 22 |
| 23 class Services(object): |
| 24 """A simple container for widely-used service objects.""" |
| 25 |
| 26 def __init__( |
| 27 self, project=None, user=None, issue=None, config=None, |
| 28 inboundemail=None, usergroup=None, cache_manager=None, autolink_obj=None, |
| 29 user_star=None, project_star=None, issue_star=None, features=None, |
| 30 spam=None): |
| 31 # Persistence services |
| 32 self.project = project |
| 33 self.user = user |
| 34 self.usergroup = usergroup |
| 35 self.issue = issue |
| 36 self.config = config |
| 37 self.user_star = user_star |
| 38 self.project_star = project_star |
| 39 self.issue_star = issue_star |
| 40 self.features = features |
| 41 self.spam = spam |
| 42 |
| 43 # Misc. services |
| 44 self.cache_manager = cache_manager |
| 45 self.inboundemail = inboundemail |
| 46 self.autolink = autolink_obj |
| 47 |
| 48 |
| 49 def set_up_services(): |
| 50 """Set up all services.""" |
| 51 |
| 52 global svcs |
| 53 if svcs is None: |
| 54 svcs = Services() |
| 55 svcs.autolink = autolink.Autolink() |
| 56 svcs.cache_manager = cachemanager_svc.CacheManager() |
| 57 svcs.user = user_svc.UserService(svcs.cache_manager) |
| 58 svcs.user_star = star_svc.UserStarService(svcs.cache_manager) |
| 59 svcs.project_star = star_svc.ProjectStarService(svcs.cache_manager) |
| 60 svcs.issue_star = star_svc.IssueStarService(svcs.cache_manager) |
| 61 svcs.project = project_svc.ProjectService(svcs.cache_manager) |
| 62 svcs.usergroup = usergroup_svc.UserGroupService(svcs.cache_manager) |
| 63 svcs.config = config_svc.ConfigService(svcs.cache_manager) |
| 64 svcs.issue = issue_svc.IssueService( |
| 65 svcs.project, svcs.config, svcs.cache_manager) |
| 66 svcs.features = features_svc.FeaturesService(svcs.cache_manager) |
| 67 svcs.spam = spam_svc.SpamService() |
| 68 return svcs |
OLD | NEW |