X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1a17734f7264bc74463e1e6fe115cdad6ec4c521..4ed6415ef859ccca13a46c77046f9febfb05bb2b:/services/ws/session.go diff --git a/services/ws/session.go b/services/ws/session.go index 9c3cef1d9a..c0cfbd6d02 100644 --- a/services/ws/session.go +++ b/services/ws/session.go @@ -1,8 +1,20 @@ -package main +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + +package ws + +import ( + "database/sql" + + "git.arvados.org/arvados.git/sdk/go/arvados" +) type session interface { - // Receive processes a message received from the client. - Receive(map[string]interface{}, []byte) + // Receive processes a message received from the client. If a + // non-nil error is returned, the connection will be + // terminated. + Receive([]byte) error // Filter returns true if the event should be queued for // sending to the client. It should return as fast as @@ -21,3 +33,5 @@ type session interface { // up, the connection will be dropped. EventMessage(*event) ([]byte, error) } + +type sessionFactory func(wsConn, chan<- interface{}, *sql.DB, permChecker, *arvados.Client) (session, error)