1
0

dbinc.go 981 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package dbinc
  2. /*
  3. dbinc is the interface for all database backend
  4. */
  5. type BackendType int
  6. const (
  7. BackendBoltDB BackendType = iota //Default backend
  8. BackendFSOnly //OpenWRT or RISCV backend
  9. BackendLevelDB //LevelDB backend
  10. BackEndAuto = BackendBoltDB
  11. )
  12. type Backend interface {
  13. NewTable(tableName string) error
  14. TableExists(tableName string) bool
  15. DropTable(tableName string) error
  16. Write(tableName string, key string, value interface{}) error
  17. Read(tableName string, key string, assignee interface{}) error
  18. KeyExists(tableName string, key string) bool
  19. Delete(tableName string, key string) error
  20. ListTable(tableName string) ([][][]byte, error)
  21. Close()
  22. }
  23. func (b BackendType) String() string {
  24. switch b {
  25. case BackendBoltDB:
  26. return "BoltDB"
  27. case BackendFSOnly:
  28. return "File System Emulated Key-Value Store"
  29. case BackendLevelDB:
  30. return "LevelDB"
  31. default:
  32. return "Unknown"
  33. }
  34. }