2021-11-02 19:08:21 +01:00
|
|
|
package server
|
|
|
|
|
|
|
|
import (
|
2021-12-07 17:45:15 +01:00
|
|
|
"errors"
|
2021-11-02 19:08:21 +01:00
|
|
|
_ "github.com/mattn/go-sqlite3" // SQLite driver
|
2021-11-03 02:09:49 +01:00
|
|
|
"time"
|
2021-11-02 19:08:21 +01:00
|
|
|
)
|
|
|
|
|
2021-12-07 17:45:15 +01:00
|
|
|
var (
|
|
|
|
errUnexpectedMessageType = errors.New("unexpected message type")
|
|
|
|
)
|
|
|
|
|
|
|
|
// cache implements a cache for messages of type "message" events,
|
|
|
|
// i.e. message structs with the Event messageEvent.
|
2021-11-03 02:09:49 +01:00
|
|
|
type cache interface {
|
|
|
|
AddMessage(m *message) error
|
2021-12-10 17:31:42 +01:00
|
|
|
Messages(topic string, since sinceTime, scheduled bool) ([]*message, error)
|
|
|
|
MessagesDue() ([]*message, error)
|
2021-11-03 02:09:49 +01:00
|
|
|
MessageCount(topic string) (int, error)
|
|
|
|
Topics() (map[string]*topic, error)
|
2021-12-09 04:57:31 +01:00
|
|
|
Prune(olderThan time.Time) error
|
2021-12-10 17:31:42 +01:00
|
|
|
MarkPublished(m *message) error
|
2022-01-07 14:49:28 +01:00
|
|
|
AttachmentsSize(owner string) (int64, error)
|
2022-01-07 15:15:33 +01:00
|
|
|
AttachmentsExpired() ([]string, error)
|
2021-11-02 19:08:21 +01:00
|
|
|
}
|