Documentation

Overview

Package fileresolver is a set of common resolvers for files used in olin.

These packages are dumb. This is intentional. The caller will handle all errors and massage them into the correct format with as little modification as possible on the resolver side.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotImplemented = errors.New("fileresolver: not implemeted")
)

Errors exposed by partial.go

Functions

func HTTP

func HTTP(cl *http.Client, u *url.URL) (abi.File, error)

HTTP creates a new HTTP transport that pretends to be a file. A process can (and should) have as many of these open as they need active HTTP connections. Users of this package are suggested to use the same underlying HTTP client as much as makes sense.

To use this file:

- write your request body to the file
- flush the file (this blocks for the duration of the HTTP request)
- read the response body from the file
- close the file when you are done reading the response

A new HTTP file will be required for every request on the guest side, but it will be for the best.

func Log

func Log(writer io.Writer, prefix string, flag int) abi.File

Log returns a file that redirects all write calls to a standard library logger with the given prefix and flags.

For more information, please see the spec here: https://github.com/CommonWA/cwa-spec/blob/master/schemes/log.md

func NewOSFile

func NewOSFile(fd uintptr, name string) abi.File

NewOSFile creates a file backed by an OS file descriptor without buffering. This is kinda dangerous. Only do this if you know what you are doing.

func Null

func Null() abi.File

Null is a file that emulates /dev/null on Linux.

For more information, please see the spec here: https://github.com/CommonWA/cwa-spec/blob/master/schemes/null.md

func Random

func Random() abi.File

Random returns a file that reads cryptographically random data.

func Reader

func Reader(r io.Reader, name string) abi.File

Reader wraps an io.Reader as an abi.File.

func Writer

func Writer(w io.Writer, name string) abi.File

Writer wraps an io.Writer as an abi.File.

func Zero

func Zero() abi.File

Zero is a file that does nothing.

For more information, please see the spec here: https://github.com/CommonWA/cwa-spec/blob/master/schemes/zero.md

Types

type OSFile

type OSFile struct {
	// contains filtered or unexported fields
}

OSFile implements File backed by a raw operating system file.

This doesn't buffer I/O.

func (OSFile) Close

func (o OSFile) Close() error

Close closes this OS file.

func (OSFile) Flush

func (OSFile) Flush() error

Flush does nothing.

func (OSFile) Name

func (o OSFile) Name() string

Name returns the file's name.

func (OSFile) Read

func (o OSFile) Read(p []byte) (int, error)

Read reads data from the OS file.

func (OSFile) Write

func (o OSFile) Write(p []byte) (int, error)

Write writes data to the OS file.