// This file may be redistributed and modified only under the terms of
// the GNU Lesser General Public License (See COPYING for details).
// Copyright (C) 2000 Michael Day
#include <Atlas/Net/Loopback.h>
namespace Atlas { namespace Net {
class LoopBridge : public Bridge
{
public:
LoopBridge(Bridge* bridge) : m_bridge(bridge) { }
virtual void streamBegin()
{
m_bridge->streamBegin();
}
virtual void streamMessage()
{
m_bridge->streamMessage();
}
virtual void streamEnd()
{
m_bridge->streamEnd();
}
virtual void mapMapItem(const std::string& name)
{
m_bridge->mapMapItem(name);
}
virtual void mapListItem(const std::string& name)
{
m_bridge->mapListItem(name);
}
virtual void mapIntItem(const std::string& name, long data)
{
m_bridge->mapIntItem(name, data);
}
virtual void mapFloatItem(const std::string& name, double data)
{
m_bridge->mapFloatItem(name, data);
}
virtual void mapStringItem(const std::string& name, const std::string& data)
{
m_bridge->mapStringItem(name, data);
}
virtual void mapEnd()
{
m_bridge->mapEnd();
}
virtual void listMapItem()
{
m_bridge->listMapItem();
}
virtual void listListItem()
{
m_bridge->listListItem();
}
virtual void listIntItem(long data)
{
m_bridge->listIntItem(data);
}
virtual void listFloatItem(double data)
{
m_bridge->listFloatItem(data);
}
virtual void listStringItem(const std::string& data)
{
m_bridge->listStringItem(data);
}
virtual void listEnd()
{
m_bridge->listEnd();
}
private:
Bridge* m_bridge;
};
void loopback(Bridge* d1, Bridge* d2, Bridge*& e1, Bridge*& e2)
{
e1 = new LoopBridge(d1);
e2 = new LoopBridge(d2);
}
} } // namespace Atlas::Net
syntax highlighted by Code2HTML, v. 0.9.1