2016-10-03 19:55:37 +02:00
|
|
|
package database
|
|
|
|
|
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
|
2017-04-10 18:54:12 +02:00
|
|
|
"github.com/FreifunkBremen/yanic/runtime"
|
2016-10-03 19:55:37 +02:00
|
|
|
)
|
|
|
|
|
2017-04-10 18:54:12 +02:00
|
|
|
// Connection interface to use for implementation in e.g. influxdb
|
|
|
|
type Connection interface {
|
2017-04-18 01:48:38 +02:00
|
|
|
// InsertNode stores statistics per node
|
|
|
|
InsertNode(node *runtime.Node)
|
2017-04-17 20:42:06 +02:00
|
|
|
|
2017-09-27 13:55:02 +02:00
|
|
|
// InsertLink stores statistics per link
|
|
|
|
InsertLink(*runtime.Link, time.Time)
|
|
|
|
|
2017-04-18 01:48:38 +02:00
|
|
|
// InsertGlobals stores global statistics
|
2017-11-21 15:12:06 +01:00
|
|
|
InsertGlobals(*runtime.GlobalStats, time.Time, string)
|
2016-12-15 11:10:09 +01:00
|
|
|
|
2017-04-17 20:42:06 +02:00
|
|
|
// PruneNodes prunes historical per-node data
|
|
|
|
PruneNodes(deleteAfter time.Duration)
|
2016-10-03 19:55:37 +02:00
|
|
|
|
2017-04-17 20:42:06 +02:00
|
|
|
// Close closes the database connection
|
2017-04-10 18:54:12 +02:00
|
|
|
Close()
|
2016-10-03 19:55:37 +02:00
|
|
|
}
|
2016-12-15 09:52:12 +01:00
|
|
|
|
2017-04-10 18:54:12 +02:00
|
|
|
// Connect function with config to get DB connection interface
|
2017-12-31 05:26:17 +01:00
|
|
|
type Connect func(config map[string]interface{}) (Connection, error)
|
2016-10-03 19:55:37 +02:00
|
|
|
|
2017-04-17 20:42:06 +02:00
|
|
|
// Adapters is the list of registered database adapters
|
2017-04-10 18:54:12 +02:00
|
|
|
var Adapters = map[string]Connect{}
|
2016-10-03 19:55:37 +02:00
|
|
|
|
2017-04-17 20:42:06 +02:00
|
|
|
func RegisterAdapter(name string, n Connect) {
|
2017-04-10 18:54:12 +02:00
|
|
|
Adapters[name] = n
|
2016-10-03 19:55:37 +02:00
|
|
|
}
|