Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | 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)
void reset ()
override int getWidth ()
IWriter put (IWritable x)
IWriter put (char[] x)

Static Public Member Functions

static this ()

Private Member Functions

final void pad ()
 this (IBuffer buffer, char[] workspace=null, Format.DblFormat df=&Double.format)
 this (IConduit conduit)
 this (IBuffer buffer)
IWriter write (void *src, uint bytes, int type)
int print (char[] s, TypeInfo[] ti, void *args)
DisplayWriter print (char[] s,...)
DisplayWriter println (char[] s,...)
IWriter put ()
IWriter put (bool x)
IWriter put (ubyte x)
IWriter put (byte x)
IWriter put (ushort x)
IWriter put (short x)
IWriter put (uint x)
IWriter put (int x)
IWriter put (ulong x)
IWriter put (long x)
IWriter put (float x)
IWriter put (double x)
IWriter put (real x)
IWriter put (char x)
IWriter put (wchar x)
IWriter put (dchar x)
IWriter put (byte[] x)
IWriter put (ubyte[] x)
IWriter put (short[] x)
IWriter put (ushort[] x)
IWriter put (int[] x)
IWriter put (uint[] x)
IWriter put (long[] x)
IWriter put (ulong[] x)
IWriter put (float[] x)
IWriter put (double[] x)
IWriter put (real[] x)

Private Attributes

int output
ColumnList columns

Static Private Attributes

static 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 write = new ColumnWriter (Stdout.getBuffer(), new ColumnList(columns));

        // set 2 digits of precision
        write.setPrecision (2);

        // Mango style     
        write (1) (20.34944) ("test") (CR);

        // iostream style     
        write << 1 << 20.34944 << "test" << CR;
        
        // put() style
        write.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 77 of file ColumnWriter.d.


Member Typedef Documentation

typedef DisplayWriter put put
 

Definition at line 79 of file ColumnWriter.d.


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 92 of file ColumnWriter.d.

References assert(), and columns.

static this  )  [inline, static]
 

Populate the space padding with valid spaces.

Definition at line 108 of file ColumnWriter.d.

References spaces.

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 126 of file ColumnWriter.d.

References columns, output, and ColumnList::reset().

Referenced by put().

override int getWidth  )  [inline]
 

Definition at line 138 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 Writer.

Definition at line 150 of file ColumnWriter.d.

References IWriter::put(), reset(), and x.

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 Writer.

Definition at line 174 of file ColumnWriter.d.

References output, pad(), and x.

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 189 of file ColumnWriter.d.

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

Referenced by put().

this IBuffer  buffer,
char[]  workspace = null,
Format.DblFormat  df = &Double.format
[inline, inherited]
 

Construct a DisplayWriter upon the specified IBuffer. One can override the default floating-point formatting by providing an appropriate handler to this constructor. For example, one might configure the DGDouble.format() function instead.

Definition at line 95 of file DisplayWriter.d.

References Writer::enableArrayPrefix(), DisplayWriter::style, DisplayWriter::utf8(), and DisplayWriter::workspace.

this IConduit  conduit  )  [inline, inherited]
 

Construct a DisplayWriter upon the specified IConduit

Reimplemented from Writer.

Reimplemented in FlushWriter.

Definition at line 115 of file DisplayWriter.d.

this IBuffer  buffer  )  [inline, inherited]
 

Construct a Writer upon the provided IBuffer. All formatted output will be directed to this buffer.

Reimplemented in HttpWriter, EndianWriter, and FlushWriter.

Definition at line 158 of file Writer.d.

References Writer::buffer, Writer::Encoder::char16, Writer::Encoder::char32, Writer::Encoder::char8, Writer::encode, and Writer::encoder().

IWriter write void *  src,
uint  bytes,
int  type
[inline, inherited]
 

Intercept discrete output and convert it to printable form

Reimplemented from Writer.

Definition at line 126 of file DisplayWriter.d.

References DisplayWriter::style.

int print char[]  s,
TypeInfo[]  ti,
void *  args
[inline, inherited]
 

Format a set of arguments a la printf(). Please see module mango.format.Format for details

Definition at line 139 of file DisplayWriter.d.

References Format::print(), and DisplayWriter::style.

Referenced by DisplayWriter::print(), and DisplayWriter::println().

DisplayWriter print char[]  s,
  ...
[inline, inherited]
 

Format a set of arguments a la printf(). Please see module mango.format.Format for details

Definition at line 152 of file DisplayWriter.d.

References DisplayWriter::print().

DisplayWriter println char[]  s,
  ...
[inline, inherited]
 

Format a set of arguments a la printf(). Please see module mango.format.Format for details

Definition at line 165 of file DisplayWriter.d.

References DisplayWriter::print(), and Writer::put().

IWriter put  )  [inline, inherited]
 

Flush this writer. This is a convenience method used by the "whisper" syntax.

Reimplemented from IWriter.

Definition at line 299 of file Writer.d.

References Writer::flush().

Referenced by Writer::cr(), Writer::length(), DisplayWriter::println(), testBuffer(), and DisplayWriter::utf8().

IWriter put bool  x  )  [inline, inherited]
 

Write a boolean value to the current buffer-position

Reimplemented from IWriter.

Definition at line 323 of file Writer.d.

References Writer::write(), and x.

IWriter put ubyte  x  )  [inline, inherited]
 

Write an unsigned byte value to the current buffer-position

Reimplemented from IWriter.

Definition at line 334 of file Writer.d.

References Writer::write(), and x.

IWriter put byte  x  )  [inline, inherited]
 

Write a byte value to the current buffer-position

Reimplemented from IWriter.

Definition at line 345 of file Writer.d.

References Writer::write(), and x.

IWriter put ushort  x  )  [inline, inherited]
 

Write an unsigned short value to the current buffer-position

Reimplemented from IWriter.

Definition at line 356 of file Writer.d.

References Writer::write(), and x.

IWriter put short  x  )  [inline, inherited]
 

Write a short value to the current buffer-position

Reimplemented from IWriter.

Definition at line 367 of file Writer.d.

References Writer::write(), and x.

IWriter put uint  x  )  [inline, inherited]
 

Write a unsigned int value to the current buffer-position

Reimplemented from IWriter.

Definition at line 378 of file Writer.d.

References Writer::write(), and x.

IWriter put int  x  )  [inline, inherited]
 

Write an int value to the current buffer-position

Reimplemented from IWriter.

Definition at line 389 of file Writer.d.

References Writer::write(), and x.

IWriter put ulong  x  )  [inline, inherited]
 

Write an unsigned long value to the current buffer-position

Reimplemented from IWriter.

Definition at line 400 of file Writer.d.

References Writer::write(), and x.

IWriter put long  x  )  [inline, inherited]
 

Write a long value to the current buffer-position

Reimplemented from IWriter.

Definition at line 411 of file Writer.d.

References Writer::write(), and x.

IWriter put float  x  )  [inline, inherited]
 

Write a float value to the current buffer-position

Reimplemented from IWriter.

Definition at line 422 of file Writer.d.

References Writer::write(), and x.

IWriter put double  x  )  [inline, inherited]
 

Write a double value to the current buffer-position

Reimplemented from IWriter.

Definition at line 433 of file Writer.d.

References Writer::write(), and x.

IWriter put real  x  )  [inline, inherited]
 

Write a real value to the current buffer-position

Reimplemented from IWriter.

Definition at line 444 of file Writer.d.

References Writer::write(), and x.

IWriter put char  x  )  [inline, inherited]
 

Write a char value to the current buffer-position

Reimplemented from IWriter.

Definition at line 455 of file Writer.d.

References Writer::Encoder::char8, Writer::encode, and x.

IWriter put wchar  x  )  [inline, inherited]
 

Write a wchar value to the current buffer-position

Reimplemented from IWriter.

Definition at line 467 of file Writer.d.

References Writer::Encoder::char16, Writer::encode, and x.

IWriter put dchar  x  )  [inline, inherited]
 

Write a dchar value to the current buffer-position

Reimplemented from IWriter.

Definition at line 479 of file Writer.d.

References Writer::Encoder::char32, Writer::encode, and x.

IWriter put byte[]  x  )  [inline, inherited]
 

Write a byte array to the current buffer-position

Reimplemented from IWriter.

Definition at line 491 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put ubyte[]  x  )  [inline, inherited]
 

Write an unsigned byte array to the current buffer-position

Reimplemented from IWriter.

Definition at line 502 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put short[]  x  )  [inline, inherited]
 

Write a short array to the current buffer-position

Reimplemented from IWriter.

Definition at line 513 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put ushort[]  x  )  [inline, inherited]
 

Write an unsigned short array to the current buffer-position

Reimplemented from IWriter.

Definition at line 524 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put int[]  x  )  [inline, inherited]
 

Write an int array to the current buffer-position

Reimplemented from IWriter.

Definition at line 535 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put uint[]  x  )  [inline, inherited]
 

Write an unsigned int array to the current buffer-position

Reimplemented from IWriter.

Definition at line 546 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put long[]  x  )  [inline, inherited]
 

Write a long array to the current buffer-position

Reimplemented from IWriter.

Definition at line 557 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put ulong[]  x  )  [inline, inherited]
 

Write an unsigned long array to the current buffer-position

Reimplemented from IWriter.

Definition at line 568 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put float[]  x  )  [inline, inherited]
 

Write a float array to the current buffer-position

Reimplemented from IWriter.

Definition at line 579 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put double[]  x  )  [inline, inherited]
 

Write a double array to the current buffer-position

Reimplemented from IWriter.

Definition at line 590 of file Writer.d.

References Writer::length(), Writer::write(), and x.

IWriter put real[]  x  )  [inline, inherited]
 

Write a real array to the current buffer-position

Reimplemented from IWriter.

Definition at line 601 of file Writer.d.

References Writer::length(), Writer::write(), and x.


Member Data Documentation

int output [private]
 

Definition at line 81 of file ColumnWriter.d.

Referenced by pad(), put(), and reset().

ColumnList columns [private]
 

Definition at line 82 of file ColumnWriter.d.

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

ubyte spaces[256] [static, private]
 

Definition at line 83 of file ColumnWriter.d.

Referenced by pad(), and this().


The documentation for this class was generated from the following file:
Generated on Mon Nov 14 10:59:50 2005 for Mango by  doxygen 1.4.0