Atlas 0.7.0
Networking protocol for the Worldforge system.
Loopback.cpp
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 Michael Day
4
5// $Id$
6
7#include <Atlas/Net/Loopback.h>
8
9namespace Atlas { namespace Net {
10
11class LoopBridge : public Bridge
12{
13 public:
14
15 explicit LoopBridge(Bridge* bridge) : m_bridge(bridge) { }
16
17 void streamBegin() override
18 {
19 m_bridge->streamBegin();
20 }
21
22 void streamMessage() override
23 {
24 m_bridge->streamMessage();
25 }
26
27 void streamEnd() override
28 {
29 m_bridge->streamEnd();
30 }
31
32 void mapMapItem(std::string name) override
33 {
34 m_bridge->mapMapItem(std::move(name));
35 }
36
37 void mapListItem(std::string name) override
38 {
39 m_bridge->mapListItem(std::move(name));
40 }
41
42 void mapIntItem(std::string name, std::int64_t data) override
43 {
44 m_bridge->mapIntItem(std::move(name), data);
45 }
46
47 void mapFloatItem(std::string name, double data) override
48 {
49 m_bridge->mapFloatItem(std::move(name), data);
50 }
51
52 void mapStringItem(std::string name, std::string data) override
53 {
54 m_bridge->mapStringItem(std::move(name), std::move(data));
55 }
56
57 virtual void mapNoneItem(std::string name) override
58 {
59 m_bridge->mapNoneItem(std::move(name));
60 }
61
62 void mapEnd() override
63 {
64 m_bridge->mapEnd();
65 }
66
67 void listMapItem() override
68 {
69 m_bridge->listMapItem();
70 }
71
72 void listListItem() override
73 {
74 m_bridge->listListItem();
75 }
76
77 void listIntItem(std::int64_t data) override
78 {
79 m_bridge->listIntItem(data);
80 }
81
82 void listFloatItem(double data) override
83 {
84 m_bridge->listFloatItem(data);
85 }
86
87 void listStringItem(std::string data) override
88 {
89 m_bridge->listStringItem(std::move(data));
90 }
91
92 void listNoneItem() override
93 {
94 m_bridge->listNoneItem();
95 }
96
97
98 void listEnd() override
99 {
100 m_bridge->listEnd();
101 }
102
103 private:
104
105 Bridge* m_bridge;
106};
107
108void loopback(Bridge* d1, Bridge* d2, Bridge*& e1, Bridge*& e2)
109{
110 e1 = new LoopBridge(d1);
111 e2 = new LoopBridge(d2);
112}
113
114} } // namespace Atlas::Net
virtual void mapFloatItem(std::string name, double)=0
virtual void mapEnd()=0
virtual void listEnd()=0
virtual void streamMessage()=0
virtual void listListItem()=0
virtual void listMapItem()=0
virtual void mapMapItem(std::string name)=0
virtual void streamEnd()=0
virtual void listStringItem(std::string)=0
virtual void listIntItem(std::int64_t)=0
virtual void streamBegin()=0
virtual void listFloatItem(double)=0
virtual void mapListItem(std::string name)=0
virtual void listNoneItem()=0
virtual void mapIntItem(std::string name, std::int64_t)=0
virtual void mapNoneItem(std::string name)=0
virtual void mapStringItem(std::string name, std::string)=0
void listEnd() override
Definition: Loopback.cpp:98
void listFloatItem(double data) override
Definition: Loopback.cpp:82
virtual void mapNoneItem(std::string name) override
Definition: Loopback.cpp:57
void mapFloatItem(std::string name, double data) override
Definition: Loopback.cpp:47
void mapEnd() override
Definition: Loopback.cpp:62
void mapMapItem(std::string name) override
Definition: Loopback.cpp:32
void mapStringItem(std::string name, std::string data) override
Definition: Loopback.cpp:52
void mapListItem(std::string name) override
Definition: Loopback.cpp:37
void mapIntItem(std::string name, std::int64_t data) override
Definition: Loopback.cpp:42
void streamBegin() override
Definition: Loopback.cpp:17
void listListItem() override
Definition: Loopback.cpp:72
void listMapItem() override
Definition: Loopback.cpp:67
void listIntItem(std::int64_t data) override
Definition: Loopback.cpp:77
void streamMessage() override
Definition: Loopback.cpp:22
void listNoneItem() override
Definition: Loopback.cpp:92
void listStringItem(std::string data) override
Definition: Loopback.cpp:87
void streamEnd() override
Definition: Loopback.cpp:27
Definition: Bridge.h:20