Device

Implements a means of reading and writing a file device. Conduits are the primary means of accessing external data, and this one is used as a superclass for the console, for files, sockets etc.

Members

Aliases

error
alias error = Conduit.error

expose superclass definition also

Functions

bufferSize
size_t bufferSize()

Return a preferred size for buffering conduit I/O.

detach
void detach()

Release the underlying file.

error
void error()

Throw an IOException noting the last error.

fileHandle
Handle fileHandle()
pread
size_t pread(void[] dst, off_t offset)

Read a chunk of bytes from the file from the given offset, into the provided array

pwrite
size_t pwrite(const(void)[] src, off_t offset)

Write a chunk of bytes to the file starting from the given offset, from the provided array

read
size_t read(void[] dst)

Read a chunk of bytes from the file into the provided array

reopen
void reopen(Handle handle)

Allow adjustment of standard IO handles.

setNonBlock
void setNonBlock()

Sets the device in the non-blocking mode.

toString
istring toString()

Return the name of this device.

write
size_t write(const(void)[] src)

Write a chunk of bytes to the file from the provided array.

Variables

handle
int handle;
Undocumented in source.

Inherited Members

From Conduit

~this
~this()

Clean up when collected. See method detach().

toString
istring toString()

Return the name of this conduit.

bufferSize
size_t bufferSize()

Return a preferred size for buffering conduit I/O.

read
size_t read(void[] dst)

Read from conduit into a target array. The provided dst will be populated with content from the conduit.

write
size_t write(const(void)[] src)

Write to conduit from a source array. The provided src content will be written to the conduit.

detach
void detach()

Disconnect this conduit. Note that this may be invoked both explicitly by the user, and implicitly by the GC. Be sure to manage multiple detachment requests correctly: set a flag, or sentinel value as necessary.

timeout
void timeout(uint millisec)

Set the active timeout period for IO calls (in milliseconds.)

timeout
uint timeout()

Get the active timeout period for IO calls (in milliseconds.)

isAlive
bool isAlive()

Is the conduit alive? Default behaviour returns true.

conduit
IConduit conduit()

Return the host. This is part of the Stream interface.

flush
IOStream flush()

Emit buffered output or reset buffered input.

close
void close()

Close this conduit.

error
void error(istring msg)

Throw an IOException, with the provided message.

error
void error(int error_code, istring func_name, istring msg, istring file, long line)

Throw an IOException, with the provided message, function name and error code.

input
InputStream input()

Return the input stream.

output
OutputStream output()

Return the output stream.

put
Conduit put(void[] src)

Emit fixed-length content from 'src' into this conduit, throwing an IOException upon Eof.

get
Conduit get(void[] dst)

Consume fixed-length content into 'dst' from this conduit, throwing an IOException upon Eof.

rewind
Conduit rewind()

Rewind to beginning of file.

copy
OutputStream copy(InputStream src, size_t max)

Transfer the content of another conduit to this one. Returns the dst OutputStream, or throws IOException on failure.

seek
long seek(long offset, Anchor anchor)

Seek on this stream. Source conduits that don't support seeking will throw an IOException.

text
char[] text(size_t max)

Load text from a stream, and return them all in an array.

load
void[] load(size_t max)

Load the bits from a stream, and return them all in an array. The dst array can be provided as an option, which will be expanded as necessary to consume the input.

load
void[] load(InputStream src, size_t max)

Load the bits from a stream, and return them all in an array. The dst array can be provided as an option, which will be expanded as necessary to consume input.

put
void put(void[] src, OutputStream output)

Emit fixed-length content from 'src' into 'output', throwing an IOException upon Eof.

get
void get(void[] dst, InputStream input)

Consume fixed-length content into 'dst' from 'input', throwing an IOException upon Eof.

transfer
size_t transfer(InputStream src, OutputStream dst, size_t max)

Low-level data transfer, where max represents the maximum number of bytes to transfer.

Meta