package http import ( "io" context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context" core "github.com/jbenet/go-ipfs/core" "github.com/jbenet/go-ipfs/importer" chunk "github.com/jbenet/go-ipfs/importer/chunk" dag "github.com/jbenet/go-ipfs/merkledag" path "github.com/jbenet/go-ipfs/path" uio "github.com/jbenet/go-ipfs/unixfs/io" u "github.com/jbenet/go-ipfs/util" ) type ipfs interface { ResolvePath(string) (*dag.Node, error) NewDagFromReader(io.Reader) (*dag.Node, error) AddNodeToDAG(nd *dag.Node) (u.Key, error) NewDagReader(nd *dag.Node) (io.Reader, error) } type ipfsHandler struct { node *core.IpfsNode } func (i *ipfsHandler) ResolvePath(fpath string) (*dag.Node, error) { return i.node.Resolver.ResolvePath(path.Path(fpath)) } func (i *ipfsHandler) NewDagFromReader(r io.Reader) (*dag.Node, error) { return importer.BuildDagFromReader( r, i.node.DAG, i.node.Pinning.GetManual(), chunk.DefaultSplitter) } func (i *ipfsHandler) AddNodeToDAG(nd *dag.Node) (u.Key, error) { return i.node.DAG.Add(nd) } func (i *ipfsHandler) NewDagReader(nd *dag.Node) (io.Reader, error) { return uio.NewDagReader(context.TODO(), nd, i.node.DAG) }