RTBKit  0.9
Open-source framework to create real-time ad bidding systems.
soa/service/zmq_utils.cc
00001 /* zmq_utils.cc
00002    Jeremy Barnes, 14 January 2013
00003    Copyright (c) 2013 Datacratic Inc.  All rights reserved.
00004 
00005 */
00006 
00007 #include "zmq_utils.h"
00008 
00009 namespace Datacratic {
00010 
00011 std::string printZmqEvent(int event)
00012 {
00013 #define printZmqEventImpl(ev) case ev: return #ev
00014 
00015     switch (event) {
00016         printZmqEventImpl(ZMQ_EVENT_LISTENING);
00017         printZmqEventImpl(ZMQ_EVENT_BIND_FAILED);
00018         printZmqEventImpl(ZMQ_EVENT_ACCEPTED);
00019         printZmqEventImpl(ZMQ_EVENT_ACCEPT_FAILED);
00020         printZmqEventImpl(ZMQ_EVENT_CONNECTED);
00021         printZmqEventImpl(ZMQ_EVENT_CONNECT_DELAYED);
00022         printZmqEventImpl(ZMQ_EVENT_CONNECT_RETRIED);
00023         printZmqEventImpl(ZMQ_EVENT_CLOSE_FAILED);
00024         printZmqEventImpl(ZMQ_EVENT_CLOSED);
00025         printZmqEventImpl(ZMQ_EVENT_DISCONNECTED);
00026     default:
00027         return ML::format("ZMQ_EVENT_UNKNOWN(%d)", event);
00028     }
00029 
00030 #undef printZmqEventImpl
00031 }
00032 
00033 bool zmqEventIsError(int event)
00034 {
00035     switch (event) {
00036     case ZMQ_EVENT_BIND_FAILED:
00037     case ZMQ_EVENT_ACCEPT_FAILED:
00038     case ZMQ_EVENT_CONNECT_DELAYED:
00039     case ZMQ_EVENT_CLOSE_FAILED:
00040         return true;
00041     default:
00042         return false;
00043     }
00044 }
00045 
00046 } // namespace Datacratic
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator