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