### ITieredTextBuffer

  Clients use ITieredTextBuffer as if it were a C++ ostream object. It has operator<< methods for all built-in types.

  To write out diagonostic text from a test, use the member function outputTextStream, which recognizes the standard C++ << operator for all built-in types. Text output produced with outputTextStream displays to the console and is also saved in a ITieredTextBuffer within the test. You can the log the test, including the text buffer. If a test fails, you can retieve the associated diagnostic text to determine the cause of the failure.

  outputTestStream returns a pointer to a ITieredTextBuffer object that contains the text. Objects of the class ITieredTextBuffer act like C++ ostream objects. They support << operators for all built-in types.

  ITieredTextBuffer has some additional functionality beyond that of ostream to support retrieving textual information for later analysis. Information is marked with a level of importance. This permits showing a little or a lot of detail when the text is printed.

  Most text occupies the tier kNormal. Important information that should not be missed occupies tier kGeneral or kHeadline. Detailed information that can usually be ignored occupies tier kDetail or kDebug.

  This is a list of available tiers in order of least detailed to most detailed:

          kTop:		Most general information
          kHeadline:	One-line information
          kGeneral:	General interest
          kNormal:	Default
          kDetail:	Detail not usually needed
          kDebug:	Only needed during debugging
          kBottom:	Lowest tier, most detailed

### ITieredTextBuffer - Member Functions and Data by Group

### Constructors & Destructor

Class constructors and destructors.

~ITieredTextBuffer

      public:
      virtual ~ITieredTextBuffer()

  Destructor.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

ITieredTextBuffer

  Overload 1

      public:
      ITieredTextBuffer(const ITieredTextBuffer&)

  Copy constructor.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      ITieredTextBuffer()

  Default constructor.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Assignment Operators

Standard assignment operators.

operator =

      public:
      ITieredTextBuffer& operator =(const ITieredTextBuffer&)

  Standard Assignment Operator.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Echo and Output Configuration

Member functions used to control the output buffer appearance and configuration.

echoTier

      public:
      ETier echoTier() const

  Returns the ETier level at which echo is set.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

indent

      public:
      unsigned short indent() const

  Returns the current indentation level setting.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

openLog

      public:
      void openLog(const char* logFileName)

  Attempts to open the specified log file. Causes output to be displayed to standard output as well as to the log file.
  logFileName
    String value of the log file to open.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

popTier

      public:
      ETier popTier()

  Restore tier to value before last pushTier. Pops the tier at the top of the stack, as previously pushed on by pushTier, and returns it. The tier is set to the value it had before that last call to pushTier.

Return

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

pushTier

      public:
      void pushTier(ETier newTier)

  Changes tier to new setting and saves old value. Pushes newTier onto an internal stack of ETiers and makes it the new tier by calling setTier. A subsequent call to popTier will restore the previous tier. If the internal stack is full, the stack is unchanged and newTier does not get pushed.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setEchoTier

      public:
      void setEchoTier(ETier)

  Sets the tier above which text is echoed to console. This method sets the tier level at which echoing occurs. ITieredTextBuffer objects echo all output sent to them (via the operator<< method) to standard output. Echoing only happens for text above a certain tier, which is set by these methods. Subclasses may override setEchoTier if they want notification when the echo tier changes.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setIndent

      public:
      unsigned short setIndent(unsigned short)

  Sets the indent level for subsequent output via the operator<< methods. The short parameter specifies the level of indentation. If new indent is zero, text will be flushed left. Indentation only affects text that is added to this object via one of the <

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setRelativeIndent

      public:
      unsigned short setRelativeIndent(short)

  Sets the indent level for subsequent output relative to the current indent level. The short parameter specifies the level of indentation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setTier

      public:
      ETier setTier(ITieredTextBuffer::ETier newTier)

  Changes the tier of all subsequently streamed text to newTier. It only affects future calls to operator<<. setTier pins newTier to the range kTop...kBottom.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

tier

      public:
      ETier tier() const

  Returns the current tier object.

Return

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Standard C++ << Operators

Standard output operators for use with ITieredTextBuffers.

operator <<
  C++ ostream-style output for use with ITieredTextBuffer.

  Overload 1

      public:
      virtual ITieredTextBuffer& operator <<(const char*)

  C++ ostream-style output operator for char*.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      virtual ITieredTextBuffer& operator <<(const long)

  C++ ostream-style output operator for long.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 3

      public:
      virtual ITieredTextBuffer& operator <<(const double)

  C++ ostream-style output operator for double.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 4

      public:
      virtual ITieredTextBuffer& operator <<(const unsigned char)

  C++ ostream-style output operator for unsigned char.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 5

      public:
      virtual ITieredTextBuffer& operator <<(const char)

  C++ ostream-style output operator for char.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 6

      public:
      virtual ITieredTextBuffer& operator <<(const unsigned int)

  C++ ostream-style output operator for unsigned int.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 7

      public:
      virtual ITieredTextBuffer&
        operator <<( const unsigned short )

  C++ ostream-style output operator for unsigned short.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 8

      public:
      virtual ITieredTextBuffer& operator <<(const unsigned long)

  C++ ostream-style output operator for unsigned long.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 9

      public:
      virtual ITieredTextBuffer& operator <<(const signed char)

  C++ ostream-style output operator for signed char.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 10

      public:
      virtual ITieredTextBuffer& operator <<(const short)

  C++ ostream-style output operator for short.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 11

      public:
      virtual ITieredTextBuffer& operator <<(const int)

  C++ ostream-style output operator for int.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 12

      public:
      virtual ITieredTextBuffer& operator <<(const long double)

  C++ ostream-style output operator for long double.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 13

      public:
      virtual ITieredTextBuffer& operator <<(const float)

  C++ ostream-style output operator for float.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 14

      public:
      virtual ITieredTextBuffer& operator <<(endlfn)

  C++ ostream-style output operator that allows users to call `endl`.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### ITieredTextBuffer - Enumerations

ETier

      enum ETier { kTop=0,
                   kHeadline=0x10,
                   kGeneral=0x20,
                   kEphemeral=0x2F,
                   kNormal=0x30,
                   kDetail=0x40,
                   kDebug=0x50,
                   kBottom=0x5F }

      kTop - Top tier, most general information
      kHeadline - One-liner information
      kGeneral - Information of general interest
      kEphemeral - Only shows on screen; not saved '
      kNormal -  Default tier
      kDetail - Detailed information not usually needed
      kDebug - Information only needed during debugging
      kBottom - Lowest tier, most detailed information

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### ITieredTextBuffer - Type Definitions

( ITieredTextBuffer & )

      typedef ITieredTextBuffer & ( * endlfn ) ( ITieredTextBuffer & )

  Allows you to call `endl` with ITieredTextBuffer.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### ITieredTextBuffer - Inherited Member Functions and Data

#### Inherited Public Functions

  - None

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  - None

#### Inherited Protected Data

  - None