// NewSnapshotCollection loads Snapshots from DB and makes up collection func NewSnapshotCollection(db database.Storage) *SnapshotCollection { result := &SnapshotCollection{ db: db, } blobs := db.FetchByPrefix([]byte("S")) result.list = make([]*Snapshot, 0, len(blobs)) for _, blob := range blobs { s := &Snapshot{} if err := s.Decode(blob); err != nil { log.Printf("Error decoding snapshot: %s\n", err) } else { result.list = append(result.list, s) } } return result }
// NewRemoteRepoCollection loads RemoteRepos from DB and makes up collection func NewRemoteRepoCollection(db database.Storage) *RemoteRepoCollection { result := &RemoteRepoCollection{ db: db, } blobs := db.FetchByPrefix([]byte("R")) result.list = make([]*RemoteRepo, 0, len(blobs)) for _, blob := range blobs { r := &RemoteRepo{} if err := r.Decode(blob); err != nil { log.Printf("Error decoding mirror: %s\n", err) } else { result.list = append(result.list, r) } } return result }
// NewLocalRepoCollection loads LocalRepos from DB and makes up collection func NewLocalRepoCollection(db database.Storage) *LocalRepoCollection { result := &LocalRepoCollection{ RWMutex: &sync.RWMutex{}, db: db, } blobs := db.FetchByPrefix([]byte("L")) result.list = make([]*LocalRepo, 0, len(blobs)) for _, blob := range blobs { r := &LocalRepo{} if err := r.Decode(blob); err != nil { log.Printf("Error decoding repo: %s\n", err) } else { result.list = append(result.list, r) } } return result }