github.com/zignig/go-ipfs@v0.0.0-20141111235910-c9e5fdf55a52/server/http/ipfs.go (about)

     1  package http
     2  
     3  import (
     4  	"io"
     5  
     6  	core "github.com/jbenet/go-ipfs/core"
     7  	"github.com/jbenet/go-ipfs/importer"
     8  	dag "github.com/jbenet/go-ipfs/merkledag"
     9  	uio "github.com/jbenet/go-ipfs/unixfs/io"
    10  	u "github.com/jbenet/go-ipfs/util"
    11  )
    12  
    13  type ipfs interface {
    14  	ResolvePath(string) (*dag.Node, error)
    15  	NewDagFromReader(io.Reader) (*dag.Node, error)
    16  	AddNodeToDAG(nd *dag.Node) (u.Key, error)
    17  	NewDagReader(nd *dag.Node) (io.Reader, error)
    18  }
    19  
    20  type ipfsHandler struct {
    21  	node *core.IpfsNode
    22  }
    23  
    24  func (i *ipfsHandler) ResolvePath(path string) (*dag.Node, error) {
    25  	return i.node.Resolver.ResolvePath(path)
    26  }
    27  
    28  func (i *ipfsHandler) NewDagFromReader(r io.Reader) (*dag.Node, error) {
    29  	return importer.NewDagFromReader(r)
    30  }
    31  
    32  func (i *ipfsHandler) AddNodeToDAG(nd *dag.Node) (u.Key, error) {
    33  	return i.node.DAG.Add(nd)
    34  }
    35  
    36  func (i *ipfsHandler) NewDagReader(nd *dag.Node) (io.Reader, error) {
    37  	return uio.NewDagReader(nd, i.node.DAG)
    38  }