diff options
| author | Martin Sustrik <sustrik@fastmq.commkdir> | 2009-09-15 09:45:32 +0200 | 
|---|---|---|
| committer | Martin Sustrik <sustrik@fastmq.commkdir> | 2009-09-15 09:45:32 +0200 | 
| commit | 35e82b460549e227f6c3409be32d2c657955628c (patch) | |
| tree | 75b8a87760a9c1b53f225649a4650276012447bf /devices/forwarder | |
| parent | f7ad4a203ad184d97002111f4ffb8bfe6a8f7c01 (diff) | |
forwarder renamed to zmq_forwarder
Diffstat (limited to 'devices/forwarder')
| -rw-r--r-- | devices/forwarder/Makefile.am | 9 | ||||
| -rw-r--r-- | devices/forwarder/forwarder.cpp | 122 | 
2 files changed, 0 insertions, 131 deletions
diff --git a/devices/forwarder/Makefile.am b/devices/forwarder/Makefile.am deleted file mode 100644 index 63230c4..0000000 --- a/devices/forwarder/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -INCLUDES = -I$(top_builddir)/c -I$(top_builddir)/cpp - -bin_PROGRAMS = forwarder - -forwarder_LDADD = $(top_builddir)/src/libzmq.la -forwarder_SOURCES = forwarder.cpp -forwarder_CXXFLAGS = -Wall -pedantic -Werror - - diff --git a/devices/forwarder/forwarder.cpp b/devices/forwarder/forwarder.cpp deleted file mode 100644 index 8acbc85..0000000 --- a/devices/forwarder/forwarder.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* -    Copyright (c) 2007-2009 FastMQ Inc. - -    This file is part of 0MQ. - -    0MQ is free software; you can redistribute it and/or modify it under -    the terms of the Lesser GNU General Public License as published by -    the Free Software Foundation; either version 3 of the License, or -    (at your option) any later version. - -    0MQ is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -    Lesser GNU General Public License for more details. - -    You should have received a copy of the Lesser GNU General Public License -    along with this program.  If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "../../cpp/zmq.hpp" -#include "../../foreign/xmlParser/xmlParser.cpp" - -int main (int argc, char *argv []) -{ -    if (argc != 2) { -        fprintf (stderr, "usage: forwarder <config-file>\n"); -        return 1; -    } - -    XMLNode root = XMLNode::parseFile (argv [1]); -    if (root.isEmpty ()) { -        fprintf (stderr, "configuration file not found\n"); -        return 1; -    } - -    if (strcmp (root.getName (), "forwarder") != 0) { -        fprintf (stderr, "root element in the configuration file should be " -            "named 'forwarder'\n"); -        return 1; -    } - -    XMLNode in_node = root.getChildNode ("in"); -    if (in_node.isEmpty ()) { -        fprintf (stderr, "'in' node is missing in the configuration file\n"); -        return 1; -    } - -    XMLNode out_node = root.getChildNode ("out"); -    if (out_node.isEmpty ()) { -        fprintf (stderr, "'out' node is missing in the configuration file\n"); -        return 1; -    } - -    //  TODO: make the number of I/O threads configurable. -    zmq::context_t ctx (1, 1); -    zmq::socket_t in_socket (ctx, ZMQ_P2P); -    zmq::socket_t out_socket (ctx, ZMQ_P2P); - -    int n = 0; -    while (true) { -        XMLNode bind = in_node.getChildNode ("bind", n); -        if (bind.isEmpty ()) -            break; -        const char *addr = bind.getAttribute ("addr"); -        if (!addr) { -            fprintf (stderr, "'bind' node is missing 'addr' attribute\n"); -            return 1; -        } -        in_socket.bind (addr); -        n++; -    } - -    n = 0; -    while (true) { -        XMLNode connect = in_node.getChildNode ("connect", n); -        if (connect.isEmpty ()) -            break; -        const char *addr = connect.getAttribute ("addr"); -        if (!addr) { -            fprintf (stderr, "'connect' node is missing 'addr' attribute\n"); -            return 1; -        } -        in_socket.connect (addr); -        n++; -    } - -    n = 0; -    while (true) { -        XMLNode bind = out_node.getChildNode ("bind", n); -        if (bind.isEmpty ()) -            break; -        const char *addr = bind.getAttribute ("addr"); -        if (!addr) { -            fprintf (stderr, "'bind' node is missing 'addr' attribute\n"); -            return 1; -        } -        out_socket.bind (addr); -        n++; -    } - -    n = 0; -    while (true) { -        XMLNode connect = out_node.getChildNode ("connect", n); -        if (connect.isEmpty ()) -            break; -        const char *addr = connect.getAttribute ("addr"); -        if (!addr) { -            fprintf (stderr, "'connect' node is missing 'addr' attribute\n"); -            return 1; -        } -        out_socket.connect (addr); -        n++; -    } - -    zmq::message_t msg; -    while (true) { -        in_socket.recv (&msg); -        out_socket.send (msg); -    } - -    return 0; -}  | 
