1
// This file may be redistributed and modified only under the terms of
2
// the GNU Lesser General Public License (See COPYING for details).
3
// Copyright (C) 2000 Stefanus Du Toit
5
#ifndef ATLAS_MESSAGE_ENCODER_H
6
#define ATLAS_MESSAGE_ENCODER_H
8
#include <Atlas/EncoderBase.h>
10
namespace Atlas { namespace Message {
14
/** Encoder that transmits Atlas::Message::Element.
16
* This encoder can be used to send Atlas::Message::Element objects representing
17
* full atlas messages.
21
* @see Atlas::EncoderBase
22
* @author Stefanus Du Toit <sdt@gmx.net>
24
class Encoder : public Atlas::EncoderBase
27
Encoder(Atlas::Bridge*);
29
virtual ~Encoder() { }
31
/// Ensure that methods in base class are not hidden
32
virtual void streamMessage(const Map& m)
33
{ EncoderBase::streamMessage(m); }
35
virtual void mapItem(const std::string& name, const Bridge::Map& m)
36
{ EncoderBase::mapItem(name, m); }
37
virtual void mapItem(const std::string& name, const Bridge::List& l)
38
{ EncoderBase::mapItem(name, l); }
39
virtual void mapItem(const std::string& name, long i)
40
{ EncoderBase::mapItem(name, i); }
41
virtual void mapItem(const std::string& name, double d)
42
{ EncoderBase::mapItem(name, d); }
43
virtual void mapItem(const std::string& name, const std::string& s)
44
{ EncoderBase::mapItem(name, s); }
46
virtual void listItem(const Bridge::Map& m) { EncoderBase::listItem(m); }
47
virtual void listItem(const Bridge::List& l) { EncoderBase::listItem(l); }
48
virtual void listItem(long i) { EncoderBase::listItem(i); }
49
virtual void listItem(double d) { EncoderBase::listItem(d); }
50
virtual void listItem(const std::string& s) { EncoderBase::listItem(s); }
52
/// Send a message (must be a map!) in stream state.
53
virtual void streamMessage(const Element& obj);
55
/// Send an object as a map item.
56
virtual void mapItem(const std::string&, const Element&);
57
/// Send an object as a list item.
58
virtual void listItem(const Element&);
61
} } // namespace Atlas::Message