MCPcopy Create free account
hub / github.com/MG-RAST/Shock / FileReader

Method FileReader

shock-server/node/node.go:243–262  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

241}
242
243func (node *Node) FileReader() (reader file.ReaderAt, err error) {
244 if node.File.Virtual {
245 readers := []file.ReaderAt{}
246 nodes := Nodes{}
247 if _, err := dbFind(bson.M{"id": bson.M{"$in": node.File.VirtualParts}}, &nodes, "", nil); err != nil {
248 return nil, err
249 }
250 if len(nodes) > 0 {
251 for _, n := range nodes {
252 if r, err := n.FileReader(); err == nil {
253 readers = append(readers, r)
254 } else {
255 return nil, err
256 }
257 }
258 }
259 return file.MultiReaderAt(readers...), nil
260 }
261 return os.Open(node.FilePath())
262}
263
264func (node *Node) DynamicIndex(name string) (idx index.Index, err error) {
265 if index.Has(name) {

Callers 3

addVirtualPartsMethod · 0.95
streamDownloadFunction · 0.80
ReadMethod · 0.80

Calls 2

FilePathMethod · 0.95
dbFindFunction · 0.85

Tested by

no test coverage detected