aboutsummaryrefslogtreecommitdiff
path: root/federationsender/storage/tables/interface.go
diff options
context:
space:
mode:
Diffstat (limited to 'federationsender/storage/tables/interface.go')
-rw-r--r--federationsender/storage/tables/interface.go62
1 files changed, 62 insertions, 0 deletions
diff --git a/federationsender/storage/tables/interface.go b/federationsender/storage/tables/interface.go
new file mode 100644
index 00000000..55d9119f
--- /dev/null
+++ b/federationsender/storage/tables/interface.go
@@ -0,0 +1,62 @@
+// Copyright 2020 The Matrix.org Foundation C.I.C.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tables
+
+import (
+ "context"
+ "database/sql"
+
+ "github.com/matrix-org/dendrite/federationsender/types"
+ "github.com/matrix-org/gomatrixserverlib"
+)
+
+type FederationSenderQueuePDUs interface {
+ InsertQueuePDU(ctx context.Context, txn *sql.Tx, transactionID gomatrixserverlib.TransactionID, serverName gomatrixserverlib.ServerName, nid int64) error
+ DeleteQueuePDUs(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, jsonNIDs []int64) error
+ SelectQueuePDUNextTransactionID(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (gomatrixserverlib.TransactionID, error)
+ SelectQueuePDUReferenceJSONCount(ctx context.Context, txn *sql.Tx, jsonNID int64) (int64, error)
+ SelectQueuePDUCount(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (int64, error)
+ SelectQueuePDUs(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, transactionID gomatrixserverlib.TransactionID, limit int) ([]int64, error)
+ SelectQueuePDUServerNames(ctx context.Context, txn *sql.Tx) ([]gomatrixserverlib.ServerName, error)
+}
+
+type FederationSenderQueueEDUs interface {
+ InsertQueueEDU(ctx context.Context, txn *sql.Tx, eduType string, serverName gomatrixserverlib.ServerName, nid int64) error
+ DeleteQueueEDUs(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, jsonNIDs []int64) error
+ SelectQueueEDUs(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName, limit int) ([]int64, error)
+ SelectQueueEDUReferenceJSONCount(ctx context.Context, txn *sql.Tx, jsonNID int64) (int64, error)
+ SelectQueueEDUCount(ctx context.Context, txn *sql.Tx, serverName gomatrixserverlib.ServerName) (int64, error)
+ SelectQueueEDUServerNames(ctx context.Context, txn *sql.Tx) ([]gomatrixserverlib.ServerName, error)
+}
+
+type FederationSenderQueueJSON interface {
+ InsertQueueJSON(ctx context.Context, txn *sql.Tx, json string) (int64, error)
+ DeleteQueueJSON(ctx context.Context, txn *sql.Tx, nids []int64) error
+ SelectQueueJSON(ctx context.Context, txn *sql.Tx, jsonNIDs []int64) (map[int64][]byte, error)
+}
+
+type FederationSenderJoinedHosts interface {
+ InsertJoinedHosts(ctx context.Context, txn *sql.Tx, roomID, eventID string, serverName gomatrixserverlib.ServerName) error
+ DeleteJoinedHosts(ctx context.Context, txn *sql.Tx, eventIDs []string) error
+ SelectJoinedHostsWithTx(ctx context.Context, txn *sql.Tx, roomID string) ([]types.JoinedHost, error)
+ SelectJoinedHosts(ctx context.Context, roomID string) ([]types.JoinedHost, error)
+ SelectAllJoinedHosts(ctx context.Context) ([]gomatrixserverlib.ServerName, error)
+}
+
+type FederationSenderRooms interface {
+ InsertRoom(ctx context.Context, txn *sql.Tx, roomID string) error
+ SelectRoomForUpdate(ctx context.Context, txn *sql.Tx, roomID string) (string, error)
+ UpdateRoom(ctx context.Context, txn *sql.Tx, roomID, lastEventID string) error
+}