From ff7caa01f47df249066169daa314664c3669842e Mon Sep 17 00:00:00 2001 From: Martin Lucina Date: Wed, 9 Nov 2011 18:51:46 +0100 Subject: Initial commit --- myservice.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 myservice.c (limited to 'myservice.c') diff --git a/myservice.c b/myservice.c new file mode 100644 index 0000000..89a031b --- /dev/null +++ b/myservice.c @@ -0,0 +1,70 @@ +/* myservice.c: Service (publisher) component. + * + * Copyright (C) 2011 VMware, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include +#include +#include +#include +#include + +#define ERR_EXIT(what) { \ + fprintf (stderr, "error in %s: %s\n", what, zmq_strerror (errno)); \ + exit (EXIT_FAILURE); \ + } + +int main (int argc, char *argv []) +{ + const char *bind_to; + const char *message = "MESSAGE"; + void *ctx; + void *s; + int rc; + + if (argc != 2) { + fprintf (stderr, "usage: myservice \n"); + exit (EXIT_FAILURE); + } + bind_to = argv [1]; + + ctx = zmq_init (1); + if (!ctx) + ERR_EXIT ("zmq_init"); + + s = zmq_socket (ctx, ZMQ_PUB); + if (!s) + ERR_EXIT ("zmq_socket"); + + rc = zmq_bind (s, bind_to); + if (rc != 0) + ERR_EXIT ("zmq_bind"); + + for (;;) { + rc = zmq_send (s, message, sizeof message, 0); + if (rc != sizeof message) + ERR_EXIT ("zmq_send"); + + sleep (1); + } + + exit (EXIT_SUCCESS); +} -- cgit v1.2.3