(ixcobra) make CobraConnection_EventType an enum class (CobraEventType)
This commit is contained in:
		@@ -1,6 +1,10 @@
 | 
				
			|||||||
# Changelog
 | 
					# Changelog
 | 
				
			||||||
All changes to this project will be documented in this file.
 | 
					All changes to this project will be documented in this file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [9.2.8] - 2020-04-15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(ixcobra) make CobraConnection_EventType an enum class (CobraEventType)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## [9.2.7] - 2020-04-14
 | 
					## [9.2.7] - 2020-04-14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(ixsentry) add a library method to upload a payload directly to sentry
 | 
					(ixsentry) add a library method to upload a payload directly to sentry
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -181,12 +181,12 @@ namespace ix
 | 
				
			|||||||
                               &throttled,
 | 
					                               &throttled,
 | 
				
			||||||
                               &receivedCount,
 | 
					                               &receivedCount,
 | 
				
			||||||
                               &fatalCobraError,
 | 
					                               &fatalCobraError,
 | 
				
			||||||
                               &queueManager](ix::CobraConnectionEventType eventType,
 | 
					                               &queueManager](ix::CobraEventType eventType,
 | 
				
			||||||
                                              const std::string& errMsg,
 | 
					                                              const std::string& errMsg,
 | 
				
			||||||
                                              const ix::WebSocketHttpHeaders& headers,
 | 
					                                              const ix::WebSocketHttpHeaders& headers,
 | 
				
			||||||
                                              const std::string& subscriptionId,
 | 
					                                              const std::string& subscriptionId,
 | 
				
			||||||
                                              CobraConnection::MsgId msgId) {
 | 
					                                              CobraConnection::MsgId msgId) {
 | 
				
			||||||
            if (eventType == ix::CobraConnection_EventType_Open)
 | 
					            if (eventType == ix::CobraEventType::Open)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber connected");
 | 
					                spdlog::info("Subscriber connected");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -195,11 +195,11 @@ namespace ix
 | 
				
			|||||||
                    spdlog::info("{}: {}", it.first, it.second);
 | 
					                    spdlog::info("{}: {}", it.first, it.second);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (eventType == ix::CobraConnection_EventType_Closed)
 | 
					            if (eventType == ix::CobraEventType::Closed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber closed");
 | 
					                spdlog::info("Subscriber closed");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Authenticated)
 | 
					            else if (eventType == ix::CobraEventType::Authenticated)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber authenticated");
 | 
					                spdlog::info("Subscriber authenticated");
 | 
				
			||||||
                conn.subscribe(channel,
 | 
					                conn.subscribe(channel,
 | 
				
			||||||
@@ -222,37 +222,37 @@ namespace ix
 | 
				
			|||||||
                                   queueManager.add(msg);
 | 
					                                   queueManager.add(msg);
 | 
				
			||||||
                               });
 | 
					                               });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Subscribed)
 | 
					            else if (eventType == ix::CobraEventType::Subscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber: subscribed to channel {}", subscriptionId);
 | 
					                spdlog::info("Subscriber: subscribed to channel {}", subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_UnSubscribed)
 | 
					            else if (eventType == ix::CobraEventType::UnSubscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber: unsubscribed from channel {}", subscriptionId);
 | 
					                spdlog::info("Subscriber: unsubscribed from channel {}", subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Error)
 | 
					            else if (eventType == ix::CobraEventType::Error)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: error {}", errMsg);
 | 
					                spdlog::error("Subscriber: error {}", errMsg);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Published)
 | 
					            else if (eventType == ix::CobraEventType::Published)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Published message hacked: {}", msgId);
 | 
					                spdlog::error("Published message hacked: {}", msgId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Pong)
 | 
					            else if (eventType == ix::CobraEventType::Pong)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Received websocket pong");
 | 
					                spdlog::info("Received websocket pong");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Handshake_Error)
 | 
					            else if (eventType == ix::CobraEventType::HandshakeError)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: Handshake error: {}", errMsg);
 | 
					                spdlog::error("Subscriber: Handshake error: {}", errMsg);
 | 
				
			||||||
                fatalCobraError = true;
 | 
					                fatalCobraError = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Authentication_Error)
 | 
					            else if (eventType == ix::CobraEventType::AuthenticationError)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: Authentication error: {}", errMsg);
 | 
					                spdlog::error("Subscriber: Authentication error: {}", errMsg);
 | 
				
			||||||
                fatalCobraError = true;
 | 
					                fatalCobraError = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Subscription_Error)
 | 
					            else if (eventType == ix::CobraEventType::SubscriptionError)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: Subscription error: {}", errMsg);
 | 
					                spdlog::error("Subscriber: Subscription error: {}", errMsg);
 | 
				
			||||||
                fatalCobraError = true;
 | 
					                fatalCobraError = true;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -202,12 +202,12 @@ namespace ix
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        conn.setEventCallback(
 | 
					        conn.setEventCallback(
 | 
				
			||||||
            [&conn, &channel, &filter, &position, &jsonWriter, verbose, &queueManager, &receivedCount, &fatalCobraError](
 | 
					            [&conn, &channel, &filter, &position, &jsonWriter, verbose, &queueManager, &receivedCount, &fatalCobraError](
 | 
				
			||||||
                ix::CobraConnectionEventType eventType,
 | 
					                ix::CobraEventType eventType,
 | 
				
			||||||
                const std::string& errMsg,
 | 
					                const std::string& errMsg,
 | 
				
			||||||
                const ix::WebSocketHttpHeaders& headers,
 | 
					                const ix::WebSocketHttpHeaders& headers,
 | 
				
			||||||
                const std::string& subscriptionId,
 | 
					                const std::string& subscriptionId,
 | 
				
			||||||
                CobraConnection::MsgId msgId) {
 | 
					                CobraConnection::MsgId msgId) {
 | 
				
			||||||
                if (eventType == ix::CobraConnection_EventType_Open)
 | 
					                if (eventType == ix::CobraEventType::Open)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::info("Subscriber connected");
 | 
					                    spdlog::info("Subscriber connected");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -216,11 +216,11 @@ namespace ix
 | 
				
			|||||||
                        spdlog::info("{}: {}", it.first, it.second);
 | 
					                        spdlog::info("{}: {}", it.first, it.second);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (eventType == ix::CobraConnection_EventType_Closed)
 | 
					                if (eventType == ix::CobraEventType::Closed)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::info("Subscriber closed");
 | 
					                    spdlog::info("Subscriber closed");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Authenticated)
 | 
					                else if (eventType == ix::CobraEventType::Authenticated)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::info("Subscriber authenticated");
 | 
					                    spdlog::info("Subscriber authenticated");
 | 
				
			||||||
                    conn.subscribe(channel,
 | 
					                    conn.subscribe(channel,
 | 
				
			||||||
@@ -239,37 +239,37 @@ namespace ix
 | 
				
			|||||||
                                       queueManager.add(msg);
 | 
					                                       queueManager.add(msg);
 | 
				
			||||||
                                   });
 | 
					                                   });
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Subscribed)
 | 
					                else if (eventType == ix::CobraEventType::Subscribed)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::info("Subscriber: subscribed to channel {}", subscriptionId);
 | 
					                    spdlog::info("Subscriber: subscribed to channel {}", subscriptionId);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_UnSubscribed)
 | 
					                else if (eventType == ix::CobraEventType::UnSubscribed)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::info("Subscriber: unsubscribed from channel {}", subscriptionId);
 | 
					                    spdlog::info("Subscriber: unsubscribed from channel {}", subscriptionId);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Error)
 | 
					                else if (eventType == ix::CobraEventType::Error)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::error("Subscriber: error {}", errMsg);
 | 
					                    spdlog::error("Subscriber: error {}", errMsg);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Published)
 | 
					                else if (eventType == ix::CobraEventType::Published)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::error("Published message hacked: {}", msgId);
 | 
					                    spdlog::error("Published message hacked: {}", msgId);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Pong)
 | 
					                else if (eventType == ix::CobraEventType::Pong)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::info("Received websocket pong");
 | 
					                    spdlog::info("Received websocket pong");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Handshake_Error)
 | 
					                else if (eventType == ix::CobraEventType::HandshakeError)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::error("Subscriber: Handshake error: {}", errMsg);
 | 
					                    spdlog::error("Subscriber: Handshake error: {}", errMsg);
 | 
				
			||||||
                    fatalCobraError = true;
 | 
					                    fatalCobraError = true;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Authentication_Error)
 | 
					                else if (eventType == ix::CobraEventType::AuthenticationError)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::error("Subscriber: Authentication error: {}", errMsg);
 | 
					                    spdlog::error("Subscriber: Authentication error: {}", errMsg);
 | 
				
			||||||
                    fatalCobraError = true;
 | 
					                    fatalCobraError = true;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Subscription_Error)
 | 
					                else if (eventType == ix::CobraEventType::SubscriptionError)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    spdlog::error("Subscriber: Subscription error: {}", errMsg);
 | 
					                    spdlog::error("Subscriber: Subscription error: {}", errMsg);
 | 
				
			||||||
                    fatalCobraError = true;
 | 
					                    fatalCobraError = true;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,8 @@ set (IXCOBRA_HEADERS
 | 
				
			|||||||
    ixcobra/IXCobraMetricsThreadedPublisher.h
 | 
					    ixcobra/IXCobraMetricsThreadedPublisher.h
 | 
				
			||||||
    ixcobra/IXCobraMetricsPublisher.h
 | 
					    ixcobra/IXCobraMetricsPublisher.h
 | 
				
			||||||
    ixcobra/IXCobraConfig.h
 | 
					    ixcobra/IXCobraConfig.h
 | 
				
			||||||
 | 
					    ixcobra/IXCobraEvent.h
 | 
				
			||||||
 | 
					    ixcobra/IXCobraEventType.h
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(ixcobra STATIC
 | 
					add_library(ixcobra STATIC
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -87,7 +87,7 @@ namespace ix
 | 
				
			|||||||
        _eventCallback = eventCallback;
 | 
					        _eventCallback = eventCallback;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void CobraConnection::invokeEventCallback(ix::CobraConnectionEventType eventType,
 | 
					    void CobraConnection::invokeEventCallback(ix::CobraEventType eventType,
 | 
				
			||||||
                                              const std::string& errorMsg,
 | 
					                                              const std::string& errorMsg,
 | 
				
			||||||
                                              const WebSocketHttpHeaders& headers,
 | 
					                                              const WebSocketHttpHeaders& headers,
 | 
				
			||||||
                                              const std::string& subscriptionId,
 | 
					                                              const std::string& subscriptionId,
 | 
				
			||||||
@@ -105,7 +105,7 @@ namespace ix
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        std::stringstream ss;
 | 
					        std::stringstream ss;
 | 
				
			||||||
        ss << errorMsg << " : received pdu => " << serializedPdu;
 | 
					        ss << errorMsg << " : received pdu => " << serializedPdu;
 | 
				
			||||||
        invokeEventCallback(ix::CobraConnection_EventType_Error, ss.str());
 | 
					        invokeEventCallback(ix::CobraEventType::Error, ss.str());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void CobraConnection::disconnect()
 | 
					    void CobraConnection::disconnect()
 | 
				
			||||||
@@ -124,7 +124,7 @@ namespace ix
 | 
				
			|||||||
                std::stringstream ss;
 | 
					                std::stringstream ss;
 | 
				
			||||||
                if (msg->type == ix::WebSocketMessageType::Open)
 | 
					                if (msg->type == ix::WebSocketMessageType::Open)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    invokeEventCallback(ix::CobraConnection_EventType_Open,
 | 
					                    invokeEventCallback(ix::CobraEventType::Open,
 | 
				
			||||||
                                        std::string(),
 | 
					                                        std::string(),
 | 
				
			||||||
                                        msg->openInfo.headers);
 | 
					                                        msg->openInfo.headers);
 | 
				
			||||||
                    sendHandshakeMessage();
 | 
					                    sendHandshakeMessage();
 | 
				
			||||||
@@ -136,7 +136,7 @@ namespace ix
 | 
				
			|||||||
                    std::stringstream ss;
 | 
					                    std::stringstream ss;
 | 
				
			||||||
                    ss << "Close code " << msg->closeInfo.code;
 | 
					                    ss << "Close code " << msg->closeInfo.code;
 | 
				
			||||||
                    ss << " reason " << msg->closeInfo.reason;
 | 
					                    ss << " reason " << msg->closeInfo.reason;
 | 
				
			||||||
                    invokeEventCallback(ix::CobraConnection_EventType_Closed,
 | 
					                    invokeEventCallback(ix::CobraEventType::Closed,
 | 
				
			||||||
                                        ss.str());
 | 
					                                        ss.str());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (msg->type == ix::WebSocketMessageType::Message)
 | 
					                else if (msg->type == ix::WebSocketMessageType::Message)
 | 
				
			||||||
@@ -166,18 +166,18 @@ namespace ix
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else if (action == "auth/handshake/error")
 | 
					                    else if (action == "auth/handshake/error")
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        invokeEventCallback(ix::CobraConnection_EventType_Handshake_Error,
 | 
					                        invokeEventCallback(ix::CobraEventType::HandshakeError,
 | 
				
			||||||
                                            msg->str);
 | 
					                                            msg->str);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else if (action == "auth/authenticate/ok")
 | 
					                    else if (action == "auth/authenticate/ok")
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        _authenticated = true;
 | 
					                        _authenticated = true;
 | 
				
			||||||
                        invokeEventCallback(ix::CobraConnection_EventType_Authenticated);
 | 
					                        invokeEventCallback(ix::CobraEventType::Authenticated);
 | 
				
			||||||
                        flushQueue();
 | 
					                        flushQueue();
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else if (action == "auth/authenticate/error")
 | 
					                    else if (action == "auth/authenticate/error")
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        invokeEventCallback(ix::CobraConnection_EventType_Authentication_Error,
 | 
					                        invokeEventCallback(ix::CobraEventType::AuthenticationError,
 | 
				
			||||||
                                            msg->str);
 | 
					                                            msg->str);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else if (action == "rtm/subscription/data")
 | 
					                    else if (action == "rtm/subscription/data")
 | 
				
			||||||
@@ -193,7 +193,7 @@ namespace ix
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else if (action == "rtm/subscribe/error")
 | 
					                    else if (action == "rtm/subscribe/error")
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        invokeEventCallback(ix::CobraConnection_EventType_Subscription_Error,
 | 
					                        invokeEventCallback(ix::CobraEventType::SubscriptionError,
 | 
				
			||||||
                                            msg->str);
 | 
					                                            msg->str);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else if (action == "rtm/unsubscribe/ok")
 | 
					                    else if (action == "rtm/unsubscribe/ok")
 | 
				
			||||||
@@ -234,7 +234,7 @@ namespace ix
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (msg->type == ix::WebSocketMessageType::Pong)
 | 
					                else if (msg->type == ix::WebSocketMessageType::Pong)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    invokeEventCallback(ix::CobraConnection_EventType_Pong);
 | 
					                    invokeEventCallback(ix::CobraEventType::Pong);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -396,7 +396,7 @@ namespace ix
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (!subscriptionId.isString()) return false;
 | 
					        if (!subscriptionId.isString()) return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        invokeEventCallback(ix::CobraConnection_EventType_Subscribed,
 | 
					        invokeEventCallback(ix::CobraEventType::Subscribed,
 | 
				
			||||||
                            std::string(), WebSocketHttpHeaders(),
 | 
					                            std::string(), WebSocketHttpHeaders(),
 | 
				
			||||||
                            subscriptionId.asString());
 | 
					                            subscriptionId.asString());
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
@@ -414,7 +414,7 @@ namespace ix
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (!subscriptionId.isString()) return false;
 | 
					        if (!subscriptionId.isString()) return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        invokeEventCallback(ix::CobraConnection_EventType_UnSubscribed,
 | 
					        invokeEventCallback(ix::CobraEventType::UnSubscribed,
 | 
				
			||||||
                            std::string(), WebSocketHttpHeaders(),
 | 
					                            std::string(), WebSocketHttpHeaders(),
 | 
				
			||||||
                            subscriptionId.asString());
 | 
					                            subscriptionId.asString());
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
@@ -462,7 +462,7 @@ namespace ix
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        uint64_t msgId = id.asUInt64();
 | 
					        uint64_t msgId = id.asUInt64();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        invokeEventCallback(ix::CobraConnection_EventType_Published,
 | 
					        invokeEventCallback(ix::CobraEventType::Published,
 | 
				
			||||||
                            std::string(), WebSocketHttpHeaders(),
 | 
					                            std::string(), WebSocketHttpHeaders(),
 | 
				
			||||||
                            std::string(), msgId);
 | 
					                            std::string(), msgId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <ixwebsocket/IXWebSocketHttpHeaders.h>
 | 
					#include <ixwebsocket/IXWebSocketHttpHeaders.h>
 | 
				
			||||||
#include <ixwebsocket/IXWebSocketPerMessageDeflateOptions.h>
 | 
					#include <ixwebsocket/IXWebSocketPerMessageDeflateOptions.h>
 | 
				
			||||||
 | 
					#include "IXCobraEventType.h"
 | 
				
			||||||
#include <json/json.h>
 | 
					#include <json/json.h>
 | 
				
			||||||
#include <memory>
 | 
					#include <memory>
 | 
				
			||||||
#include <mutex>
 | 
					#include <mutex>
 | 
				
			||||||
@@ -28,21 +29,6 @@ namespace ix
 | 
				
			|||||||
    class WebSocket;
 | 
					    class WebSocket;
 | 
				
			||||||
    struct SocketTLSOptions;
 | 
					    struct SocketTLSOptions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    enum CobraConnectionEventType
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Authenticated = 0,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Error = 1,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Open = 2,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Closed = 3,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Subscribed = 4,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_UnSubscribed = 5,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Published = 6,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Pong = 7,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Handshake_Error = 8,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Authentication_Error = 9,
 | 
					 | 
				
			||||||
        CobraConnection_EventType_Subscription_Error = 10
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    enum CobraConnectionPublishMode
 | 
					    enum CobraConnectionPublishMode
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        CobraConnection_PublishMode_Immediate = 0,
 | 
					        CobraConnection_PublishMode_Immediate = 0,
 | 
				
			||||||
@@ -50,7 +36,7 @@ namespace ix
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    using SubscriptionCallback = std::function<void(const Json::Value&, const std::string&)>;
 | 
					    using SubscriptionCallback = std::function<void(const Json::Value&, const std::string&)>;
 | 
				
			||||||
    using EventCallback = std::function<void(CobraConnectionEventType,
 | 
					    using EventCallback = std::function<void(CobraEventType,
 | 
				
			||||||
                                             const std::string&,
 | 
					                                             const std::string&,
 | 
				
			||||||
                                             const WebSocketHttpHeaders&,
 | 
					                                             const WebSocketHttpHeaders&,
 | 
				
			||||||
                                             const std::string&,
 | 
					                                             const std::string&,
 | 
				
			||||||
@@ -171,7 +157,7 @@ namespace ix
 | 
				
			|||||||
        static void invokePublishTrackerCallback(bool sent, bool acked);
 | 
					        static void invokePublishTrackerCallback(bool sent, bool acked);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// Invoke event callbacks
 | 
					        /// Invoke event callbacks
 | 
				
			||||||
        void invokeEventCallback(CobraConnectionEventType eventType,
 | 
					        void invokeEventCallback(CobraEventType eventType,
 | 
				
			||||||
                                 const std::string& errorMsg = std::string(),
 | 
					                                 const std::string& errorMsg = std::string(),
 | 
				
			||||||
                                 const WebSocketHttpHeaders& headers = WebSocketHttpHeaders(),
 | 
					                                 const WebSocketHttpHeaders& headers = WebSocketHttpHeaders(),
 | 
				
			||||||
                                 const std::string& subscriptionId = std::string(),
 | 
					                                 const std::string& subscriptionId = std::string(),
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								ixcobra/ixcobra/IXCobraEventType.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								ixcobra/ixcobra/IXCobraEventType.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  IXCobraEventType.h
 | 
				
			||||||
 | 
					 *  Author: Benjamin Sergeant
 | 
				
			||||||
 | 
					 *  Copyright (c) 2020 Machine Zone, Inc. All rights reserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace ix
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    enum class CobraEventType
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Authenticated = 0,
 | 
				
			||||||
 | 
					        Error = 1,
 | 
				
			||||||
 | 
					        Open = 2,
 | 
				
			||||||
 | 
					        Closed = 3,
 | 
				
			||||||
 | 
					        Subscribed = 4,
 | 
				
			||||||
 | 
					        UnSubscribed = 5,
 | 
				
			||||||
 | 
					        Published = 6,
 | 
				
			||||||
 | 
					        Pong = 7,
 | 
				
			||||||
 | 
					        HandshakeError = 8,
 | 
				
			||||||
 | 
					        AuthenticationError = 9,
 | 
				
			||||||
 | 
					        SubscriptionError = 10
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -24,7 +24,7 @@ namespace ix
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        _cobra_connection.setEventCallback(
 | 
					        _cobra_connection.setEventCallback(
 | 
				
			||||||
            []
 | 
					            []
 | 
				
			||||||
            (ix::CobraConnectionEventType eventType,
 | 
					            (ix::CobraEventType eventType,
 | 
				
			||||||
             const std::string& errMsg,
 | 
					             const std::string& errMsg,
 | 
				
			||||||
             const ix::WebSocketHttpHeaders& headers,
 | 
					             const ix::WebSocketHttpHeaders& headers,
 | 
				
			||||||
             const std::string& subscriptionId,
 | 
					             const std::string& subscriptionId,
 | 
				
			||||||
@@ -32,7 +32,7 @@ namespace ix
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                std::stringstream ss;
 | 
					                std::stringstream ss;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (eventType == ix::CobraConnection_EventType_Open)
 | 
					                if (eventType == ix::CobraEventType::Open)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ss << "Handshake headers" << std::endl;
 | 
					                    ss << "Handshake headers" << std::endl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -41,31 +41,31 @@ namespace ix
 | 
				
			|||||||
                        ss << it.first << ": " << it.second << std::endl;
 | 
					                        ss << it.first << ": " << it.second << std::endl;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Authenticated)
 | 
					                else if (eventType == ix::CobraEventType::Authenticated)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ss << "Authenticated";
 | 
					                    ss << "Authenticated";
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Error)
 | 
					                else if (eventType == ix::CobraEventType::Error)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ss << "Error: " << errMsg;
 | 
					                    ss << "Error: " << errMsg;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Closed)
 | 
					                else if (eventType == ix::CobraEventType::Closed)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ss << "Connection closed: " << errMsg;
 | 
					                    ss << "Connection closed: " << errMsg;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Subscribed)
 | 
					                else if (eventType == ix::CobraEventType::Subscribed)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ss << "Subscribed through subscription id: " << subscriptionId;
 | 
					                    ss << "Subscribed through subscription id: " << subscriptionId;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_UnSubscribed)
 | 
					                else if (eventType == ix::CobraEventType::UnSubscribed)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ss << "Unsubscribed through subscription id: " << subscriptionId;
 | 
					                    ss << "Unsubscribed through subscription id: " << subscriptionId;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Published)
 | 
					                else if (eventType == ix::CobraEventType::Published)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ss << "Published message " << msgId << " acked";
 | 
					                    ss << "Published message " << msgId << " acked";
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if (eventType == ix::CobraConnection_EventType_Pong)
 | 
					                else if (eventType == ix::CobraEventType::Pong)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ss << "Received websocket pong";
 | 
					                    ss << "Received websocket pong";
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,4 +6,4 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define IX_WEBSOCKET_VERSION "9.2.7"
 | 
					#define IX_WEBSOCKET_VERSION "9.2.8"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -180,12 +180,12 @@ namespace
 | 
				
			|||||||
        _conn.configure(_cobraConfig);
 | 
					        _conn.configure(_cobraConfig);
 | 
				
			||||||
        _conn.connect();
 | 
					        _conn.connect();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        _conn.setEventCallback([this, channel](ix::CobraConnectionEventType eventType,
 | 
					        _conn.setEventCallback([this, channel](ix::CobraEventType eventType,
 | 
				
			||||||
                                               const std::string& errMsg,
 | 
					                                               const std::string& errMsg,
 | 
				
			||||||
                                               const ix::WebSocketHttpHeaders& headers,
 | 
					                                               const ix::WebSocketHttpHeaders& headers,
 | 
				
			||||||
                                               const std::string& subscriptionId,
 | 
					                                               const std::string& subscriptionId,
 | 
				
			||||||
                                               CobraConnection::MsgId msgId) {
 | 
					                                               CobraConnection::MsgId msgId) {
 | 
				
			||||||
            if (eventType == ix::CobraConnection_EventType_Open)
 | 
					            if (eventType == ix::CobraEventType::Open)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                log("Subscriber connected: " + _user);
 | 
					                log("Subscriber connected: " + _user);
 | 
				
			||||||
                for (auto&& it : headers)
 | 
					                for (auto&& it : headers)
 | 
				
			||||||
@@ -193,29 +193,29 @@ namespace
 | 
				
			|||||||
                    log("Headers " + it.first + " " + it.second);
 | 
					                    log("Headers " + it.first + " " + it.second);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Authenticated)
 | 
					            else if (eventType == ix::CobraEventType::Authenticated)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                log("Subscriber authenticated: " + _user);
 | 
					                log("Subscriber authenticated: " + _user);
 | 
				
			||||||
                subscribe(channel);
 | 
					                subscribe(channel);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Error)
 | 
					            else if (eventType == ix::CobraEventType::Error)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                log(errMsg + _user);
 | 
					                log(errMsg + _user);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Closed)
 | 
					            else if (eventType == ix::CobraEventType::Closed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                log("Connection closed: " + _user);
 | 
					                log("Connection closed: " + _user);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Subscribed)
 | 
					            else if (eventType == ix::CobraEventType::Subscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                log("Subscription ok: " + _user + " subscription_id " + subscriptionId);
 | 
					                log("Subscription ok: " + _user + " subscription_id " + subscriptionId);
 | 
				
			||||||
                _connectedAndSubscribed = true;
 | 
					                _connectedAndSubscribed = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_UnSubscribed)
 | 
					            else if (eventType == ix::CobraEventType::UnSubscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                log("Unsubscription ok: " + _user + " subscription_id " + subscriptionId);
 | 
					                log("Unsubscription ok: " + _user + " subscription_id " + subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Published)
 | 
					            else if (eventType == ix::CobraEventType::Published)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                TLogger() << "Subscriber: published message acked: " << msgId;
 | 
					                TLogger() << "Subscriber: published message acked: " << msgId;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -248,7 +248,7 @@ namespace
 | 
				
			|||||||
        ix::msleep(50);
 | 
					        ix::msleep(50);
 | 
				
			||||||
        _conn.disconnect();
 | 
					        _conn.disconnect();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        _conn.setEventCallback([](ix::CobraConnectionEventType /*eventType*/,
 | 
					        _conn.setEventCallback([](ix::CobraEventType /*eventType*/,
 | 
				
			||||||
                                  const std::string& /*errMsg*/,
 | 
					                                  const std::string& /*errMsg*/,
 | 
				
			||||||
                                  const ix::WebSocketHttpHeaders& /*headers*/,
 | 
					                                  const ix::WebSocketHttpHeaders& /*headers*/,
 | 
				
			||||||
                                  const std::string& /*subscriptionId*/,
 | 
					                                  const std::string& /*subscriptionId*/,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -54,12 +54,12 @@ namespace
 | 
				
			|||||||
        conn.configure(config);
 | 
					        conn.configure(config);
 | 
				
			||||||
        conn.connect();
 | 
					        conn.connect();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        conn.setEventCallback([&conn, &channel](ix::CobraConnectionEventType eventType,
 | 
					        conn.setEventCallback([&conn, &channel](ix::CobraEventType eventType,
 | 
				
			||||||
                                                const std::string& errMsg,
 | 
					                                                const std::string& errMsg,
 | 
				
			||||||
                                                const ix::WebSocketHttpHeaders& headers,
 | 
					                                                const ix::WebSocketHttpHeaders& headers,
 | 
				
			||||||
                                                const std::string& subscriptionId,
 | 
					                                                const std::string& subscriptionId,
 | 
				
			||||||
                                                CobraConnection::MsgId msgId) {
 | 
					                                                CobraConnection::MsgId msgId) {
 | 
				
			||||||
            if (eventType == ix::CobraConnection_EventType_Open)
 | 
					            if (eventType == ix::CobraEventType::Open)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                TLogger() << "Subscriber connected:";
 | 
					                TLogger() << "Subscriber connected:";
 | 
				
			||||||
                for (auto&& it : headers)
 | 
					                for (auto&& it : headers)
 | 
				
			||||||
@@ -67,11 +67,11 @@ namespace
 | 
				
			|||||||
                    log("Headers " + it.first + " " + it.second);
 | 
					                    log("Headers " + it.first + " " + it.second);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (eventType == ix::CobraConnection_EventType_Error)
 | 
					            if (eventType == ix::CobraEventType::Error)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                TLogger() << "Subscriber error:" << errMsg;
 | 
					                TLogger() << "Subscriber error:" << errMsg;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Authenticated)
 | 
					            else if (eventType == ix::CobraEventType::Authenticated)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                log("Subscriber authenticated");
 | 
					                log("Subscriber authenticated");
 | 
				
			||||||
                std::string filter;
 | 
					                std::string filter;
 | 
				
			||||||
@@ -92,7 +92,7 @@ namespace
 | 
				
			|||||||
                                   gMessageCount++;
 | 
					                                   gMessageCount++;
 | 
				
			||||||
                               });
 | 
					                               });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Subscribed)
 | 
					            else if (eventType == ix::CobraEventType::Subscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                TLogger() << "Subscriber: subscribed to channel " << subscriptionId;
 | 
					                TLogger() << "Subscriber: subscribed to channel " << subscriptionId;
 | 
				
			||||||
                if (subscriptionId == channel)
 | 
					                if (subscriptionId == channel)
 | 
				
			||||||
@@ -104,7 +104,7 @@ namespace
 | 
				
			|||||||
                    TLogger() << "Subscriber: unexpected channel " << subscriptionId;
 | 
					                    TLogger() << "Subscriber: unexpected channel " << subscriptionId;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_UnSubscribed)
 | 
					            else if (eventType == ix::CobraEventType::UnSubscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                TLogger() << "Subscriber: ununexpected from channel " << subscriptionId;
 | 
					                TLogger() << "Subscriber: ununexpected from channel " << subscriptionId;
 | 
				
			||||||
                if (subscriptionId != channel)
 | 
					                if (subscriptionId != channel)
 | 
				
			||||||
@@ -112,7 +112,7 @@ namespace
 | 
				
			|||||||
                    TLogger() << "Subscriber: unexpected channel " << subscriptionId;
 | 
					                    TLogger() << "Subscriber: unexpected channel " << subscriptionId;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Published)
 | 
					            else if (eventType == ix::CobraEventType::Published)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                TLogger() << "Subscriber: published message acked: " << msgId;
 | 
					                TLogger() << "Subscriber: published message acked: " << msgId;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -106,12 +106,12 @@ namespace ix
 | 
				
			|||||||
                               &msgPerSeconds,
 | 
					                               &msgPerSeconds,
 | 
				
			||||||
                               &conditionVariableMutex,
 | 
					                               &conditionVariableMutex,
 | 
				
			||||||
                               &condition,
 | 
					                               &condition,
 | 
				
			||||||
                               &queue](ix::CobraConnectionEventType eventType,
 | 
					                               &queue](ix::CobraEventType eventType,
 | 
				
			||||||
                                       const std::string& errMsg,
 | 
					                                       const std::string& errMsg,
 | 
				
			||||||
                                       const ix::WebSocketHttpHeaders& headers,
 | 
					                                       const ix::WebSocketHttpHeaders& headers,
 | 
				
			||||||
                                       const std::string& subscriptionId,
 | 
					                                       const std::string& subscriptionId,
 | 
				
			||||||
                                       CobraConnection::MsgId msgId) {
 | 
					                                       CobraConnection::MsgId msgId) {
 | 
				
			||||||
            if (eventType == ix::CobraConnection_EventType_Open)
 | 
					            if (eventType == ix::CobraEventType::Open)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber connected");
 | 
					                spdlog::info("Subscriber connected");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -120,7 +120,7 @@ namespace ix
 | 
				
			|||||||
                    spdlog::info("{}: {}", it.first, it.second);
 | 
					                    spdlog::info("{}: {}", it.first, it.second);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Authenticated)
 | 
					            else if (eventType == ix::CobraEventType::Authenticated)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber authenticated");
 | 
					                spdlog::info("Subscriber authenticated");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -141,19 +141,19 @@ namespace ix
 | 
				
			|||||||
                        msgCount++;
 | 
					                        msgCount++;
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Subscribed)
 | 
					            else if (eventType == ix::CobraEventType::Subscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber: subscribed to channel {}", subscriptionId);
 | 
					                spdlog::info("Subscriber: subscribed to channel {}", subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_UnSubscribed)
 | 
					            else if (eventType == ix::CobraEventType::UnSubscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber: unsubscribed from channel {}", subscriptionId);
 | 
					                spdlog::info("Subscriber: unsubscribed from channel {}", subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Error)
 | 
					            else if (eventType == ix::CobraEventType::Error)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: error {}", errMsg);
 | 
					                spdlog::error("Subscriber: error {}", errMsg);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Published)
 | 
					            else if (eventType == ix::CobraEventType::Published)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Published message hacked: {}", msgId);
 | 
					                spdlog::error("Published message hacked: {}", msgId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,12 +39,12 @@ namespace ix
 | 
				
			|||||||
        std::atomic<bool> messageAcked(false);
 | 
					        std::atomic<bool> messageAcked(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        conn.setEventCallback([&conn, &channel, &data, &authenticated, &messageAcked](
 | 
					        conn.setEventCallback([&conn, &channel, &data, &authenticated, &messageAcked](
 | 
				
			||||||
                                  ix::CobraConnectionEventType eventType,
 | 
					                                  ix::CobraEventType eventType,
 | 
				
			||||||
                                  const std::string& errMsg,
 | 
					                                  const std::string& errMsg,
 | 
				
			||||||
                                  const ix::WebSocketHttpHeaders& headers,
 | 
					                                  const ix::WebSocketHttpHeaders& headers,
 | 
				
			||||||
                                  const std::string& subscriptionId,
 | 
					                                  const std::string& subscriptionId,
 | 
				
			||||||
                                  CobraConnection::MsgId msgId) {
 | 
					                                  CobraConnection::MsgId msgId) {
 | 
				
			||||||
            if (eventType == ix::CobraConnection_EventType_Open)
 | 
					            if (eventType == ix::CobraEventType::Open)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Publisher connected");
 | 
					                spdlog::info("Publisher connected");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -53,7 +53,7 @@ namespace ix
 | 
				
			|||||||
                    spdlog::info("{}: {}", it.first, it.second);
 | 
					                    spdlog::info("{}: {}", it.first, it.second);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Authenticated)
 | 
					            else if (eventType == ix::CobraEventType::Authenticated)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Publisher authenticated");
 | 
					                spdlog::info("Publisher authenticated");
 | 
				
			||||||
                authenticated = true;
 | 
					                authenticated = true;
 | 
				
			||||||
@@ -64,24 +64,24 @@ namespace ix
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                spdlog::info("Published msg {}", msgId);
 | 
					                spdlog::info("Published msg {}", msgId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Subscribed)
 | 
					            else if (eventType == ix::CobraEventType::Subscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Publisher: subscribed to channel {}", subscriptionId);
 | 
					                spdlog::info("Publisher: subscribed to channel {}", subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_UnSubscribed)
 | 
					            else if (eventType == ix::CobraEventType::UnSubscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Publisher: unsubscribed from channel {}", subscriptionId);
 | 
					                spdlog::info("Publisher: unsubscribed from channel {}", subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Error)
 | 
					            else if (eventType == ix::CobraEventType::Error)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Publisher: error {}", errMsg);
 | 
					                spdlog::error("Publisher: error {}", errMsg);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Published)
 | 
					            else if (eventType == ix::CobraEventType::Published)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Published message id {} acked", msgId);
 | 
					                spdlog::info("Published message id {} acked", msgId);
 | 
				
			||||||
                messageAcked = true;
 | 
					                messageAcked = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Pong)
 | 
					            else if (eventType == ix::CobraEventType::Pong)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Received websocket pong");
 | 
					                spdlog::info("Received websocket pong");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -106,12 +106,12 @@ namespace ix
 | 
				
			|||||||
                               &msgPerSeconds,
 | 
					                               &msgPerSeconds,
 | 
				
			||||||
                               &quiet,
 | 
					                               &quiet,
 | 
				
			||||||
                               &fluentd,
 | 
					                               &fluentd,
 | 
				
			||||||
                               &fatalCobraError](ix::CobraConnectionEventType eventType,
 | 
					                               &fatalCobraError](ix::CobraEventType eventType,
 | 
				
			||||||
                                                 const std::string& errMsg,
 | 
					                                                 const std::string& errMsg,
 | 
				
			||||||
                                                 const ix::WebSocketHttpHeaders& headers,
 | 
					                                                 const ix::WebSocketHttpHeaders& headers,
 | 
				
			||||||
                                                 const std::string& subscriptionId,
 | 
					                                                 const std::string& subscriptionId,
 | 
				
			||||||
                                                 CobraConnection::MsgId msgId) {
 | 
					                                                 CobraConnection::MsgId msgId) {
 | 
				
			||||||
            if (eventType == ix::CobraConnection_EventType_Open)
 | 
					            if (eventType == ix::CobraEventType::Open)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber connected");
 | 
					                spdlog::info("Subscriber connected");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -120,7 +120,7 @@ namespace ix
 | 
				
			|||||||
                    spdlog::info("{}: {}", it.first, it.second);
 | 
					                    spdlog::info("{}: {}", it.first, it.second);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Authenticated)
 | 
					            else if (eventType == ix::CobraEventType::Authenticated)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber authenticated");
 | 
					                spdlog::info("Subscriber authenticated");
 | 
				
			||||||
                spdlog::info("Subscribing to {} at position {}", channel, subscriptionPosition);
 | 
					                spdlog::info("Subscribing to {} at position {}", channel, subscriptionPosition);
 | 
				
			||||||
@@ -145,37 +145,37 @@ namespace ix
 | 
				
			|||||||
                        subscriptionPosition = position;
 | 
					                        subscriptionPosition = position;
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Subscribed)
 | 
					            else if (eventType == ix::CobraEventType::Subscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber: subscribed to channel {}", subscriptionId);
 | 
					                spdlog::info("Subscriber: subscribed to channel {}", subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_UnSubscribed)
 | 
					            else if (eventType == ix::CobraEventType::UnSubscribed)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Subscriber: unsubscribed from channel {}", subscriptionId);
 | 
					                spdlog::info("Subscriber: unsubscribed from channel {}", subscriptionId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Error)
 | 
					            else if (eventType == ix::CobraEventType::Error)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: error {}", errMsg);
 | 
					                spdlog::error("Subscriber: error {}", errMsg);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Published)
 | 
					            else if (eventType == ix::CobraEventType::Published)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Published message hacked: {}", msgId);
 | 
					                spdlog::error("Published message hacked: {}", msgId);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Pong)
 | 
					            else if (eventType == ix::CobraEventType::Pong)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::info("Received websocket pong");
 | 
					                spdlog::info("Received websocket pong");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Handshake_Error)
 | 
					            else if (eventType == ix::CobraEventType::HandshakeError)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: Handshake error: {}", errMsg);
 | 
					                spdlog::error("Subscriber: Handshake error: {}", errMsg);
 | 
				
			||||||
                fatalCobraError = true;
 | 
					                fatalCobraError = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Authentication_Error)
 | 
					            else if (eventType == ix::CobraEventType::AuthenticationError)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: Authentication error: {}", errMsg);
 | 
					                spdlog::error("Subscriber: Authentication error: {}", errMsg);
 | 
				
			||||||
                fatalCobraError = true;
 | 
					                fatalCobraError = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (eventType == ix::CobraConnection_EventType_Subscription_Error)
 | 
					            else if (eventType == ix::CobraEventType::SubscriptionError)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                spdlog::error("Subscriber: Subscription error: {}", errMsg);
 | 
					                spdlog::error("Subscriber: Subscription error: {}", errMsg);
 | 
				
			||||||
                fatalCobraError = true;
 | 
					                fatalCobraError = true;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user