// Copyright (C) 2005 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#undef DLIB_CPP_PRETTY_PRINTER_KERNEl_ABSTRACT_
#ifdef DLIB_CPP_PRETTY_PRINTER_KERNEl_ABSTRACT_
#include <string>
#include <ioswfd>
namespace dlib
{
class cpp_pretty_printer
{
/*!
INITIAL VALUE
This object does not have any state associated with it.
WHAT THIS OBJECT REPRESENTS
This object represents an HTML pretty printer for C++ source code.
!*/
public:
cpp_pretty_printer (
);
/*!
ensures
- #*this is properly initialized
throws
- std::bad_alloc
!*/
virtual ~cpp_pretty_printer (
);
/*!
ensures
- any resources associated with *this have been released
!*/
void print (
std::istream& in,
std::ostream& out,
const std::string& title
) const;
/*!
ensures
- treats data from in as C++ source code and pretty prints it in
HTML and writes it to out.
- The title of the HTML document written to out will be title
throws
- std::ios_base::failure
If there was a problem writing to out then this exception will
be thrown.
- any other exception
This exception may be thrown if there is any other problem.
!*/
void print_and_number (
std::istream& in,
std::ostream& out,
const std::string& title
) const;
/*!
ensures
- treats data from in as C++ source code and pretty prints it in
HTML with line numbers and writes it to out.
- The title of the HTML document written to out will be title
throws
- std::ios_base::failure
If there was a problem writing to out then this exception will
be thrown.
- any other exception
This exception may be thrown if there is any other problem.
!*/
private:
// restricted functions
cpp_pretty_printer(const cpp_pretty_printer&); // copy constructor
cpp_pretty_printer& operator=(const cpp_pretty_printer&); // assignment operator
};
}
#endif // DLIB_CPP_PRETTY_PRINTER_KERNEl_ABSTRACT_