MStreamable.h
Go to the documentation of this file.
1/* -*-mode:c++; c-file-style: "gnu";-*- */
2/*
3 * $Id: MStreamable.h,v 1.14 2014/12/07 14:33:02 sebdiaz Exp $
4 *
5 * Copyright (C) 1996 - 2004 Stephen F. Booth <sbooth@gnu.org>
6 * 2007 Sebastien DIAZ <sebastien.diaz@gmail.com>
7 * Part of the GNU cgicc library, http://www.gnu.org/software/cgicc
8 *
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 3 of the License, or (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
22 */
23
24#ifndef _MSTREAMABLE_H_
25#define _MSTREAMABLE_H_ 1
26
27#ifdef __GNUG__
28# pragma interface
29#endif
30
38#include <iostream>
39
40#include "CgiDefs.h"
41
42 namespace cgicc {
43
44 class MStreamable;
45
52 CGICC_API std::ostream&
53 operator<<(std::ostream& out, const MStreamable& obj);
54
55 // ============================================================
56 // Class MStreamable
57 // ============================================================
58
66 class CGICC_API MStreamable
67 {
68
69 friend CGICC_API std::ostream&
70 operator<<(std::ostream& out, const MStreamable& obj);
71
72 public:
77 inline MStreamable()
78 {}
79
84 inline virtual ~MStreamable()
85 {}
86
93 virtual void
94 render(std::ostream& out) const = 0;
95 };
96
97} // namespace cgicc
98
99#endif /* ! _MSTREAMABLE_H_ */
100
CgiDefs.h
Platform and operating system specific macro definitions.
cgicc::MStreamable
Mix-in streamable interface.
Definition: MStreamable.h:67
cgicc::MStreamable::render
virtual void render(std::ostream &out) const =0
Write this object to a stream.
cgicc::MStreamable::MStreamable
MStreamable()
Empty constructor.
Definition: MStreamable.h:77
cgicc::MStreamable::~MStreamable
virtual ~MStreamable()
Empty destructor.
Definition: MStreamable.h:84
cgicc
The namespace containing the cgicc library.
Definition: Cgicc.h:52
cgicc::operator<<
std::ostream & operator<<(std::ostream &out, const MStreamable &obj)