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 
9 namespace Atlas { namespace Net {
10 
11 class 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 
108 void 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
Atlas::Bridge::listMapItem
virtual void listMapItem()=0
Atlas::Net::LoopBridge::mapFloatItem
void mapFloatItem(std::string name, double data) override
Definition: Loopback.cpp:47
Atlas::Net::LoopBridge::streamEnd
void streamEnd() override
Definition: Loopback.cpp:27
Atlas::Net::LoopBridge::listMapItem
void listMapItem() override
Definition: Loopback.cpp:67
Atlas::Bridge::listNoneItem
virtual void listNoneItem()=0
Atlas::Bridge::mapMapItem
virtual void mapMapItem(std::string name)=0
Atlas::Net::LoopBridge::mapEnd
void mapEnd() override
Definition: Loopback.cpp:62
Atlas::Net::LoopBridge::listNoneItem
void listNoneItem() override
Definition: Loopback.cpp:92
Atlas::Bridge::streamBegin
virtual void streamBegin()=0
Atlas::Net::LoopBridge::streamBegin
void streamBegin() override
Definition: Loopback.cpp:17
Atlas::Net::LoopBridge::listListItem
void listListItem() override
Definition: Loopback.cpp:72
Atlas::Bridge::listStringItem
virtual void listStringItem(std::string)=0
Atlas::Bridge::listListItem
virtual void listListItem()=0
Atlas::Bridge::mapIntItem
virtual void mapIntItem(std::string name, std::int64_t)=0
Atlas::Net::LoopBridge
Definition: Loopback.cpp:11
Atlas::Bridge::listFloatItem
virtual void listFloatItem(double)=0
Atlas::Net::LoopBridge::mapIntItem
void mapIntItem(std::string name, std::int64_t data) override
Definition: Loopback.cpp:42
Atlas::Bridge
Definition: Bridge.h:35
Atlas::Net::LoopBridge::mapMapItem
void mapMapItem(std::string name) override
Definition: Loopback.cpp:32
Atlas::Bridge::mapListItem
virtual void mapListItem(std::string name)=0
Atlas::Net::LoopBridge::mapListItem
void mapListItem(std::string name) override
Definition: Loopback.cpp:37
Atlas::Bridge::mapEnd
virtual void mapEnd()=0
Atlas::Bridge::streamEnd
virtual void streamEnd()=0
Atlas::Net::LoopBridge::streamMessage
void streamMessage() override
Definition: Loopback.cpp:22
Atlas::Bridge::listEnd
virtual void listEnd()=0
Atlas::Net::LoopBridge::listFloatItem
void listFloatItem(double data) override
Definition: Loopback.cpp:82
Atlas::Bridge::mapStringItem
virtual void mapStringItem(std::string name, std::string)=0
Atlas::Bridge::mapFloatItem
virtual void mapFloatItem(std::string name, double)=0
Atlas::Net::LoopBridge::listEnd
void listEnd() override
Definition: Loopback.cpp:98
Atlas::Bridge::streamMessage
virtual void streamMessage()=0
Atlas::Bridge::mapNoneItem
virtual void mapNoneItem(std::string name)=0
Atlas::Net::LoopBridge::mapNoneItem
virtual void mapNoneItem(std::string name) override
Definition: Loopback.cpp:57
Atlas::Net::LoopBridge::mapStringItem
void mapStringItem(std::string name, std::string data) override
Definition: Loopback.cpp:52
Atlas::Bridge::listIntItem
virtual void listIntItem(std::int64_t)=0
Atlas::Net::LoopBridge::listIntItem
void listIntItem(std::int64_t data) override
Definition: Loopback.cpp:77
Atlas::Net::LoopBridge::listStringItem
void listStringItem(std::string data) override
Definition: Loopback.cpp:87
Atlas
Definition: Bridge.h:20