Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

ColumnWriter Class Reference

Inheritance diagram for ColumnWriter:

DisplayWriter List of all members.

Public Types

typedef DisplayWriter put put

Public Member Functions

 this (IBuffer buffer, ColumnList columns)
char[] toString ()
void reset ()
override int getWidth ()
IWriter put (IWritable x)
IWriter put (char[] x)

Static Public Member Functions

 this ()

Private Member Functions

final void pad ()
 this (IBuffer buffer)
 this (IConduit conduit)
void setPrecision (uint digits)
void format (char[] fmt, void *src)
void format (void *src, uint count, uint width, char[] fmt)
void int8f (ubyte *src, uint count, char[] fmt)
void int16f (ushort *src, uint count, char[] fmt)
void int1 (void *src, uint count)
void int8 (void *src, uint count)
void int8u (void *src, uint count)
void int16 (void *src, uint count)
void int16u (void *src, uint count)
void int32 (void *src, uint count)
void int32u (void *src, uint count)
void int64 (void *src, uint count)
void int64u (void *src, uint count)
void float32 (void *src, uint count)
void float64 (void *src, uint count)
void float80 (void *src, uint count)

Private Attributes

int output
ColumnList columns
public class VersionWin32
typedef _vsnprintf 
vsnprintf

Static Private Attributes

ubyte spaces [256]

Detailed Description

Print readable output to an IWriter, distributed across a set of columns. Columns start at zero rather than one, so adjust counts appropriately. All output is currently left-aligned.

This is how one might use ColumnWriter:

static int[] columns = [0, 4, 14, 24]; // map a ColumnWriter directly onto Stdout ColumnWriter cw = new ColumnWriter (Stdout.getBuffer(), new ColumnList(columns)); // set 2 digits of precision cw.setPrecision (2); // opShl style cw << 1 << 20.34944 << "test" << cw.newline; // put() style cw.put(1).put(20.34944).put("test").cr();

Note that ColumnWriter may be used with files, sockets, or any other buffer-oriented construct.

Definition at line 71 of file ColumnWriter.d.


Member Typedef Documentation

typedef DisplayWriter put put
 

Definition at line 77 of file ColumnWriter.d.

Referenced by testColumn().


Member Function Documentation

this IBuffer  buffer,
ColumnList  columns
[inline]
 

Construct a ColumnWriter upon the given IBuffer, with the specified set of columns.

Definition at line 86 of file ColumnWriter.d.

References columns.

this  )  [inline, static]
 

Populate the space padding with valid spaces.

Reimplemented from AbstractWriter.

Definition at line 102 of file ColumnWriter.d.

References spaces.

char [] toString  )  [inline]
 

Return the name of this writer

Reimplemented from DisplayWriter.

Definition at line 111 of file ColumnWriter.d.

void reset  )  [inline]
 

Reset everything back to zero. Typical usage will invoke this whenever a Newline is emitted.

Note that we maintain our own internal count of how many bytes have been output: this is because we cannot depend on the Buffer to provide that for us if (a) the buffer is very small, or (b) the buffer is flushed after each write (Stdout etc).

Definition at line 129 of file ColumnWriter.d.

References columns, and ColumnList::reset().

Referenced by put().

override int getWidth  )  [inline]
 

Definition at line 141 of file ColumnWriter.d.

References columns, and ColumnList::getWidth().

IWriter put IWritable  x  )  [inline]
 

Intercept the IWritable type so we can reset our columns when a newline is emitted.

Reimplemented from AbstractWriter.

Definition at line 153 of file ColumnWriter.d.

References reset().

IWriter put char[]  x  )  [inline]
 

Intercept the output so we can write some spaces first. Note that our superclass (DisplayWriter) converts each of its arguments to a char[] first, so this override is able to catch everything emitted.

Todo:
  • add the equivalent intercepts for both wchar[] and dchar[] methods.

Reimplemented from AbstractWriter.

Definition at line 177 of file ColumnWriter.d.

References pad().

final void pad  )  [inline, private]
 

Pad the output with spaces to reach the next column position. This should be invoked before anything is written to the buffer.

Definition at line 192 of file ColumnWriter.d.

References columns, ColumnList::next(), and spaces.

Referenced by put().

this IBuffer  buffer  )  [inline, inherited]
 

Construct a DisplayWriter upon the specified IBuffer

Reimplemented from Writer.

Reimplemented in HttpWriter.

Definition at line 68 of file DisplayWriter.d.

References AbstractWriter::enableArrayPrefix().

this IConduit  conduit  )  [inline, inherited]
 

Construct a DisplayWriter upon the specified IConduit

Reimplemented from Writer.

Definition at line 96 of file DisplayWriter.d.

void setPrecision uint  digits  )  [inline, inherited]
 

Set the number of floating point digits

Definition at line 116 of file DisplayWriter.d.

Referenced by testColumn().

void format char[]  fmt,
void *  src
[inline, inherited]
 

Convert to a string and send back through the framework such that it may be intercepted by a subclass.

Definition at line 128 of file DisplayWriter.d.

References DisplayWriter::encode, AbstractWriter::put(), and DisplayWriter::vsnprintf.

Referenced by DisplayWriter::float32(), DisplayWriter::float64(), DisplayWriter::float80(), DisplayWriter::format(), DisplayWriter::int16f(), DisplayWriter::int32(), DisplayWriter::int32u(), DisplayWriter::int64(), DisplayWriter::int64u(), and DisplayWriter::int8f().

void format void *  src,
uint  count,
uint  width,
char[]  fmt
[inline, inherited]
 

Definition at line 169 of file DisplayWriter.d.

References DisplayWriter::format().

void int8f ubyte *  src,
uint  count,
char[]  fmt
[inline, inherited]
 

Definition at line 137 of file DisplayWriter.d.

References DisplayWriter::format().

Referenced by DisplayWriter::int8(), and DisplayWriter::int8u().

void int16f ushort *  src,
uint  count,
char[]  fmt
[inline, inherited]
 

Definition at line 153 of file DisplayWriter.d.

References DisplayWriter::format().

Referenced by DisplayWriter::int16(), and DisplayWriter::int16u().

void int1 void *  src,
uint  count
[inline, inherited]
 

Definition at line 184 of file DisplayWriter.d.

void int8 void *  src,
uint  count
[inline, inherited]
 

Definition at line 202 of file DisplayWriter.d.

References DisplayWriter::int8f().

void int8u void *  src,
uint  count
[inline, inherited]
 

Definition at line 211 of file DisplayWriter.d.

References DisplayWriter::int8f().

void int16 void *  src,
uint  count
[inline, inherited]
 

Definition at line 220 of file DisplayWriter.d.

References DisplayWriter::int16f().

void int16u void *  src,
uint  count
[inline, inherited]
 

Definition at line 229 of file DisplayWriter.d.

References DisplayWriter::int16f().

void int32 void *  src,
uint  count
[inline, inherited]
 

Definition at line 238 of file DisplayWriter.d.

References DisplayWriter::format().

void int32u void *  src,
uint  count
[inline, inherited]
 

Definition at line 247 of file DisplayWriter.d.

References DisplayWriter::format().

void int64 void *  src,
uint  count
[inline, inherited]
 

Definition at line 256 of file DisplayWriter.d.

References DisplayWriter::format().

void int64u void *  src,
uint  count
[inline, inherited]
 

Definition at line 265 of file DisplayWriter.d.

References DisplayWriter::format().

void float32 void *  src,
uint  count
[inline, inherited]
 

Definition at line 274 of file DisplayWriter.d.

References DisplayWriter::format().

void float64 void *  src,
uint  count
[inline, inherited]
 

Definition at line 283 of file DisplayWriter.d.

References DisplayWriter::format().

void float80 void *  src,
uint  count
[inline, inherited]
 

Definition at line 292 of file DisplayWriter.d.

References DisplayWriter::format().


Member Data Documentation

int output [private]
 

Definition at line 73 of file ColumnWriter.d.

ColumnList columns [private]
 

Definition at line 74 of file ColumnWriter.d.

Referenced by getWidth(), pad(), reset(), and this().

ubyte spaces[256] [static, private]
 

Definition at line 75 of file ColumnWriter.d.

Referenced by pad(), and this().

public class VersionWin32 typedef _vsnprintf vsnprintf [inherited]
 

Definition at line 59 of file DisplayWriter.d.

Referenced by DisplayWriter::format().


The documentation for this class was generated from the following file:
Generated on Sun Nov 7 19:07:01 2004 for Mango by doxygen 1.3.6