41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 *  IXRedisClient.h
 | 
						|
 *  Author: Benjamin Sergeant
 | 
						|
 *  Copyright (c) 2019 Machine Zone, Inc. All rights reserved.
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <functional>
 | 
						|
#include <memory>
 | 
						|
 | 
						|
namespace ix
 | 
						|
{
 | 
						|
    class Socket;
 | 
						|
 | 
						|
    class RedisClient
 | 
						|
    {
 | 
						|
    public:
 | 
						|
        using OnRedisSubscribeResponseCallback = std::function<void(const std::string&)>;
 | 
						|
        using OnRedisSubscribeCallback = std::function<void(const std::string&)>;
 | 
						|
 | 
						|
        RedisClient() = default;
 | 
						|
        ~RedisClient() = default;
 | 
						|
 | 
						|
        bool connect(const std::string& hostname, int port);
 | 
						|
 | 
						|
        bool auth(const std::string& password, std::string& response);
 | 
						|
 | 
						|
        bool publish(const std::string& channel, const std::string& message, std::string& errMsg);
 | 
						|
 | 
						|
        bool subscribe(const std::string& channel,
 | 
						|
                       const OnRedisSubscribeResponseCallback& responseCallback,
 | 
						|
                       const OnRedisSubscribeCallback& callback);
 | 
						|
 | 
						|
    private:
 | 
						|
        std::string writeString(const std::string& str);
 | 
						|
 | 
						|
        std::shared_ptr<Socket> _socket;
 | 
						|
    };
 | 
						|
} // namespace ix
 |