// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package net

import 

// BUG(mikio): On JS and Windows, the FileConn, FileListener and
// FilePacketConn functions are not implemented.

type fileAddr string

func (fileAddr) () string  { return "file+net" }
func ( fileAddr) () string { return string() }

// FileConn returns a copy of the network connection corresponding to
// the open file f.
// It is the caller's responsibility to close f when finished.
// Closing c does not affect f, and closing f does not affect c.
func ( *os.File) ( Conn,  error) {
	,  = fileConn()
	if  != nil {
		 = &OpError{Op: "file", Net: "file+net", Source: nil, Addr: fileAddr(.Name()), Err: }
	}
	return
}

// FileListener returns a copy of the network listener corresponding
// to the open file f.
// It is the caller's responsibility to close ln when finished.
// Closing ln does not affect f, and closing f does not affect ln.
func ( *os.File) ( Listener,  error) {
	,  = fileListener()
	if  != nil {
		 = &OpError{Op: "file", Net: "file+net", Source: nil, Addr: fileAddr(.Name()), Err: }
	}
	return
}

// FilePacketConn returns a copy of the packet network connection
// corresponding to the open file f.
// It is the caller's responsibility to close f when finished.
// Closing c does not affect f, and closing f does not affect c.
func ( *os.File) ( PacketConn,  error) {
	,  = filePacketConn()
	if  != nil {
		 = &OpError{Op: "file", Net: "file+net", Source: nil, Addr: fileAddr(.Name()), Err: }
	}
	return
}