Repository URL to install this package:
|
Version:
1.15.1 ▾
|
/* -*- C++ -*- */
/****************************************************************************
** Copyright (c) 2001-2014
**
** This file is part of the QuickFIX FIX Engine
**
** This file may be distributed under the terms of the quickfixengine.org
** license as defined by quickfixengine.org and appearing in the file
** LICENSE included in the packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.quickfixengine.org/LICENSE for licensing information.
**
** Contact ask@quickfixengine.org if any conditions of this licensing are
** not clear to you.
**
****************************************************************************/
#ifndef HTML_BUILDER_H
#define HTML_BUILDER_H
#ifdef _MSC_VER
#pragma warning( disable : 4503 4355 4786 4290 )
#endif
#include <sstream>
namespace HTML
{
class TAG
{
public:
TAG( const std::string& tag, std::ostream& stream )
: m_tag( tag ), m_stream( stream )
{
m_stream << "<" << m_tag;
}
virtual ~TAG()
{
m_stream << m_value.str();
m_stream << "</" << m_tag << ">";
}
TAG& text()
{ m_stream << ">"; return *this; }
TAG& text( const std::string& value )
{ m_value << value; text(); return *this; }
TAG& text( int value )
{ m_value << value; text(); return *this; }
private:
std::string m_tag;
std::stringstream m_value;
protected:
std::ostream& m_stream;
};
class SPECIAL
{
public:
SPECIAL( const std::string& value, std::ostream& stream )
{
stream << "&" << value << ";";
}
};
class A : public TAG
{
public:
A( std::ostream& stream )
: TAG( "A", stream ) {}
A& href( const std::string& value )
{ m_stream << " href='" << value << "'"; return *this; }
};
class BODY : public TAG
{
public:
BODY( std::ostream& stream )
: TAG( "BODY", stream ) {}
};
class BR : public TAG
{
public:
BR( std::ostream& stream )
: TAG( "BR", stream ) {}
};
class CAPTION : public TAG
{
public:
CAPTION( std::ostream& stream )
: TAG( "CAPTION", stream ) {}
};
class CENTER : public TAG
{
public:
CENTER( std::ostream& stream )
: TAG( "CENTER", stream ) {}
};
class EM : public TAG
{
public:
EM( std::ostream& stream )
: TAG( "EM", stream ) {}
};
class H1 : public TAG
{
public:
H1( std::ostream& stream )
: TAG( "H1", stream ) {}
};
class H2 : public TAG
{
public:
H2( std::ostream& stream )
: TAG( "H2", stream ) {}
};
class HEAD : public TAG
{
public:
HEAD( std::ostream& stream )
: TAG( "HEAD", stream ) {}
};
class HR : public TAG
{
public:
HR( std::ostream& stream )
: TAG( "HR", stream ) {}
};
const char* NBSP = " ";
class TABLE : public TAG
{
public:
TABLE( std::ostream& stream )
: TAG( "TABLE", stream ) {}
TABLE& border( int value )
{ m_stream << " border='" << value << "'"; return *this; }
TABLE& cellspacing( int value )
{ m_stream << " cellspacing='" << value << "'"; return *this; }
TABLE& width( int value )
{ m_stream << " width='" << value << "%'"; return *this; }
};
class TD : public TAG
{
public:
TD( std::ostream& stream )
: TAG( "TD", stream ) {}
TD& align( const std::string& value )
{ m_stream << " align='" << value << "'"; return *this; }
};
class TITLE : public TAG
{
public:
TITLE( std::ostream& stream )
: TAG( "TITLE", stream ) {}
};
class TR : public TAG
{
public:
TR( std::ostream& stream )
: TAG( "TR", stream ) {}
};
}
#endif