+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
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
// 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)