💾 Archived View for code.pfad.fr › gohmekit › storage captured on 2023-12-28 at 15:36:01. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-09-08)
-=-=-=-=-=-=-
import "code.pfad.fr/gohmekit/storage"
func NewMemDatabase() pairing.Database
NewMemDatabase is an in-memory database for testing (not thread-safe!)
type JSONFile struct { Path string pairing.AccessoryDevice // contains filtered or unexported fields }
JSONFile implements pairing.Database and pairing.AccessoryDevice, storing their settings in a JSON file.
func NewJSONFile(path string, options ...Option) (*JSONFile, error)
NewJSONFile will use (and create if missing) a JSON file to act as a storage. It will use the given options, only if the concerned parameters are not already set. It will generate random pin and private key if let unspecified.
func (j *JSONFile) AddLongTermPublicKey(c pairing.Controller) error
AddLongTermPublicKey is defined by the pairing.Database interface.
func (j *JSONFile) DiscoveryService(serviceName string, port int, category discovery.Category) discovery.Service
DiscoveryService returns a discovery service, ready to be announced.
func (j *JSONFile) GetLongTermPublicKey(id []byte) ([]byte, error)
GetLongTermPublicKey is defined by the pairing.Database interface.
func (j *JSONFile) IsPaired() bool
IsPaired is defined by the pairing.Database interface.
func (j *JSONFile) IsPairedWatcher(cb func(bool)) bool
IsPairedWatcher will trigger the callback on pairing change. It will overwrite any existing callback.
func (j *JSONFile) ListLongTermPublicKey() ([]pairing.Controller, error)
ListLongTermPublicKey is defined by the pairing.Database interface.
func (j *JSONFile) RemoveLongTermPublicKey(id []byte) error
RemoveLongTermPublicKey is defined by the pairing.Database interface.
func (j *JSONFile) VersionWatcher(_ func(uint16)) uint16
VersionWatcher will never trigger the callback, since the version is changed on every restart.
type Option func(*jsonData)
Option is to set some default values on first run.
func WithEd25519PrivateKey(key []byte) Option
WithEd25519PrivateKey will set the private key if it wasn't previously set.
func WithPairingID(id []byte) Option
WithPairingID will set the pairing ID if it wasn't previously set.
func WithPin(pin string) Option
WithPin will set the pin if it wasn't previously set.