summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorMark Haines <mjark@negativecurvature.net>2016-05-17 10:54:39 +0100
committerMark Haines <mjark@negativecurvature.net>2016-05-17 10:54:39 +0100
commitc4c98ce8da402e3b36081e79a63fd2726ec92db0 (patch)
tree2e03fdf537731d9a8d1e8f7a0feaaeb0c9d84eb8 /synapse
parentMerge pull request #786 from matrix-org/matthew/email_notifs_tuning (diff)
parentMerge remote-tracking branch 'origin/develop' into markjh/liberate_sync_handler (diff)
downloadsynapse-c4c98ce8da402e3b36081e79a63fd2726ec92db0.tar.xz
Merge pull request #790 from matrix-org/markjh/liberate_sync_handler
Move SyncHandler out of the Handlers object
Diffstat (limited to 'synapse')
-rw-r--r--synapse/handlers/__init__.py2
-rw-r--r--synapse/handlers/sync.py10
-rw-r--r--synapse/rest/client/v2_alpha/sync.py3
-rw-r--r--synapse/server.py5
4 files changed, 11 insertions, 9 deletions
diff --git a/synapse/handlers/__init__.py b/synapse/handlers/__init__.py
index 60e31b68ff..e1fc9a58ad 100644
--- a/synapse/handlers/__init__.py
+++ b/synapse/handlers/__init__.py
@@ -28,7 +28,6 @@ from .directory import DirectoryHandler
 from .typing import TypingNotificationHandler
 from .admin import AdminHandler
 from .appservice import ApplicationServicesHandler
-from .sync import SyncHandler
 from .auth import AuthHandler
 from .identity import IdentityHandler
 from .receipts import ReceiptsHandler
@@ -65,7 +64,6 @@ class Handlers(object):
                 as_api=asapi
             )
         )
-        self.sync_handler = SyncHandler(hs)
         self.auth_handler = AuthHandler(hs)
         self.identity_handler = IdentityHandler(hs)
         self.search_handler = SearchHandler(hs)
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index 4bdb0aef84..9ebfccc8bf 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -13,8 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from ._base import BaseHandler
-
 from synapse.streams.config import PaginationConfig
 from synapse.api.constants import Membership, EventTypes
 from synapse.util.async import concurrently_execute
@@ -133,10 +131,12 @@ class SyncResult(collections.namedtuple("SyncResult", [
         )
 
 
-class SyncHandler(BaseHandler):
+class SyncHandler(object):
 
     def __init__(self, hs):
-        super(SyncHandler, self).__init__(hs)
+        self.store = hs.get_datastore()
+        self.notifier = hs.get_notifier()
+        self.presence_handler = hs.get_presence_handler()
         self.event_sources = hs.get_event_sources()
         self.clock = hs.get_clock()
         self.response_cache = ResponseCache()
@@ -639,7 +639,7 @@ class SyncHandler(BaseHandler):
 
         # For each newly joined room, we want to send down presence of
         # existing users.
-        presence_handler = self.hs.get_presence_handler()
+        presence_handler = self.presence_handler
         extra_presence_users = set()
         for room_id in newly_joined_rooms:
             users = yield self.store.get_users_in_room(event.room_id)
diff --git a/synapse/rest/client/v2_alpha/sync.py b/synapse/rest/client/v2_alpha/sync.py
index 812abe22b1..43d8e0bf39 100644
--- a/synapse/rest/client/v2_alpha/sync.py
+++ b/synapse/rest/client/v2_alpha/sync.py
@@ -79,8 +79,7 @@ class SyncRestServlet(RestServlet):
     def __init__(self, hs):
         super(SyncRestServlet, self).__init__()
         self.auth = hs.get_auth()
-        self.event_stream_handler = hs.get_handlers().event_stream_handler
-        self.sync_handler = hs.get_handlers().sync_handler
+        self.sync_handler = hs.get_sync_handler()
         self.clock = hs.get_clock()
         self.filtering = hs.get_filtering()
         self.presence_handler = hs.get_presence_handler()
diff --git a/synapse/server.py b/synapse/server.py
index 6d01b68bd4..785a087452 100644
--- a/synapse/server.py
+++ b/synapse/server.py
@@ -28,6 +28,7 @@ from synapse.notifier import Notifier
 from synapse.api.auth import Auth
 from synapse.handlers import Handlers
 from synapse.handlers.presence import PresenceHandler
+from synapse.handlers.sync import SyncHandler
 from synapse.state import StateHandler
 from synapse.storage import DataStore
 from synapse.util import Clock
@@ -80,6 +81,7 @@ class HomeServer(object):
         'rest_servlet_factory',
         'state_handler',
         'presence_handler',
+        'sync_handler',
         'notifier',
         'distributor',
         'client_resource',
@@ -169,6 +171,9 @@ class HomeServer(object):
     def build_presence_handler(self):
         return PresenceHandler(self)
 
+    def build_sync_handler(self):
+        return SyncHandler(self)
+
     def build_event_sources(self):
         return EventSources(self)