printable.hh revision 5315
112841Sgabeblack@google.com/*
212841Sgabeblack@google.com * Copyright (c) 2007 The Regents of The University of Michigan
312841Sgabeblack@google.com * All rights reserved.
412841Sgabeblack@google.com *
512841Sgabeblack@google.com * Redistribution and use in source and binary forms, with or without
612841Sgabeblack@google.com * modification, are permitted provided that the following conditions are
712841Sgabeblack@google.com * met: redistributions of source code must retain the above copyright
812841Sgabeblack@google.com * notice, this list of conditions and the following disclaimer;
912841Sgabeblack@google.com * redistributions in binary form must reproduce the above copyright
1012841Sgabeblack@google.com * notice, this list of conditions and the following disclaimer in the
1112841Sgabeblack@google.com * documentation and/or other materials provided with the distribution;
1212841Sgabeblack@google.com * neither the name of the copyright holders nor the names of its
1312841Sgabeblack@google.com * contributors may be used to endorse or promote products derived from
1412841Sgabeblack@google.com * this software without specific prior written permission.
1512841Sgabeblack@google.com *
1612841Sgabeblack@google.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1712841Sgabeblack@google.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1812841Sgabeblack@google.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1912841Sgabeblack@google.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2012841Sgabeblack@google.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2112841Sgabeblack@google.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2212841Sgabeblack@google.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2312841Sgabeblack@google.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2412841Sgabeblack@google.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2512841Sgabeblack@google.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2612841Sgabeblack@google.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2712841Sgabeblack@google.com */
2812841Sgabeblack@google.com
2912841Sgabeblack@google.com/* @file
3012841Sgabeblack@google.com * Printable Object Base Class Declaration
3112841Sgabeblack@google.com */
3212841Sgabeblack@google.com
3313199Sgabeblack@google.com#ifndef __PRINTABLE_HH__
3412841Sgabeblack@google.com#define __PRINTABLE_HH__
3513199Sgabeblack@google.com
3612841Sgabeblack@google.com#include <ostream>
3712841Sgabeblack@google.com#include <string>
3812841Sgabeblack@google.com
3912841Sgabeblack@google.com/**
4012841Sgabeblack@google.com * Abstract base class for objects which support being printed
4112841Sgabeblack@google.com * to a stream for debugging.  Primarily used to support PrintReq
4212841Sgabeblack@google.com * in memory system.
4312841Sgabeblack@google.com */
4412841Sgabeblack@google.comclass Printable
4512841Sgabeblack@google.com{
4612841Sgabeblack@google.com  public:
4712841Sgabeblack@google.com    Printable() {}
4812841Sgabeblack@google.com    virtual ~Printable() {}
4912841Sgabeblack@google.com
5012841Sgabeblack@google.com    virtual void print(std::ostream &os,
5113199Sgabeblack@google.com                       int verbosity = 0,
5212841Sgabeblack@google.com                       const std::string &prefix = "") const = 0;
5312841Sgabeblack@google.com};
5412841Sgabeblack@google.com
5512841Sgabeblack@google.com#endif // __PRINTABLE_HH__
5612841Sgabeblack@google.com