-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. 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
// up, the connection will be dropped.
EventMessage(*event) ([]byte, error)
}
+
+type sessionFactory func(wsConn, chan<- interface{}, *sql.DB, permChecker, *arvados.Client) (session, error)