cache.go 603 B

1234567891011121314151617181920212223
  1. package server
  2. import (
  3. "errors"
  4. _ "github.com/mattn/go-sqlite3" // SQLite driver
  5. "time"
  6. )
  7. var (
  8. errUnexpectedMessageType = errors.New("unexpected message type")
  9. )
  10. // cache implements a cache for messages of type "message" events,
  11. // i.e. message structs with the Event messageEvent.
  12. type cache interface {
  13. AddMessage(m *message) error
  14. Messages(topic string, since sinceTime, scheduled bool) ([]*message, error)
  15. MessagesDue() ([]*message, error)
  16. MessageCount(topic string) (int, error)
  17. Topics() (map[string]*topic, error)
  18. Prune(olderThan time.Time) error
  19. MarkPublished(m *message) error
  20. }