X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/bc4dd2d01cda24a71f95b62ae1fa72aa9fb1226d..8ee2f83955b1b71571aa428335340f505c3c2264:/services/ws/session.go diff --git a/services/ws/session.go b/services/ws/session.go index a0658d964c..67f460865c 100644 --- a/services/ws/session.go +++ b/services/ws/session.go @@ -1,10 +1,16 @@ package main +import ( + "database/sql" + + "git.curoverse.com/arvados.git/sdk/go/arvados" +) + type session interface { - // Receive processes a message received from the client. If - // the returned list of messages is non-nil, they will be - // queued for sending to the client. - Receive(map[string]interface{}, []byte) [][]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 @@ -22,6 +28,6 @@ type session interface { // incoming events will be queued. If the event queue fills // up, the connection will be dropped. EventMessage(*event) ([]byte, error) - - debugLogf(string, ...interface{}) } + +type sessionFactory func(wsConn, chan<- interface{}, *sql.DB, permChecker, *arvados.Client) (session, error)