mirror of
https://github.com/blacktop/ipsw.git
synced 2026-06-07 12:27:36 +00:00
56 lines
1.8 KiB
Go
56 lines
1.8 KiB
Go
// Package db provides a database interface and implementations.
|
|
package db
|
|
|
|
import (
|
|
"github.com/blacktop/ipsw/internal/model"
|
|
)
|
|
|
|
// Database is the interface that wraps the basic database operations.
|
|
type Database interface {
|
|
// Connect connects to the database.
|
|
Connect() error
|
|
|
|
// Create creates a new entry in the database.
|
|
// It returns gorm.ErrDuplicatedKey if the key already exists.
|
|
Create(value any) error
|
|
|
|
// Get returns the value for the given key.
|
|
// It returns ErrNotFound if the key does not exist.
|
|
Get(key string) (*model.Ipsw, error)
|
|
|
|
// GetIpswByName returns the IPSW for the given name.
|
|
// It returns ErrNotFound if the name does not exist.
|
|
GetIpswByName(name string) (*model.Ipsw, error)
|
|
|
|
// GetIPSW returns the IPSW for the given version, build, and device.
|
|
// It returns ErrNotFound if the IPSW does not exist.
|
|
GetIPSW(version, build, device string) (*model.Ipsw, error)
|
|
|
|
// GetDSC returns the DyldSharedCache for the given UUID.
|
|
GetDSC(uuid string) (*model.DyldSharedCache, error)
|
|
|
|
// GetDSCImage returns the DyldSharedCache Image for the given UUID and address.
|
|
GetDSCImage(uuid string, addr uint64) (*model.Macho, error)
|
|
|
|
// GetMachO returns the MachO for the given UUID.
|
|
GetMachO(uuid string) (*model.Macho, error)
|
|
|
|
// GetSymbol returns the symbol for the given UUID and address.
|
|
GetSymbol(uuid string, addr uint64) (*model.Symbol, error)
|
|
|
|
// GetSymbols returns all symbols for the given UUID.
|
|
GetSymbols(uuid string) ([]*model.Symbol, error)
|
|
|
|
// Save updates the IPSW.
|
|
// It overwrites any previous value for that IPSW.
|
|
Save(value any) error
|
|
|
|
// Delete removes the given key.
|
|
// It returns ErrNotFound if the key does not exist.
|
|
Delete(key string) error
|
|
|
|
// Close closes the database.
|
|
// It returns ErrClosed if the database is already closed.
|
|
Close() error
|
|
}
|