48 lines
		
	
	
		
			1005 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1005 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <cstdint>
 | 
						|
#include <string>
 | 
						|
 | 
						|
/** Request format flags */
 | 
						|
#define CDC_REQUEST_TYPE_JSON (1 << 0)
 | 
						|
#define CDC_REQUEST_TYPE_AVRO (1 << 1)
 | 
						|
 | 
						|
namespace CDC
 | 
						|
{
 | 
						|
 | 
						|
class Connection
 | 
						|
{
 | 
						|
public:
 | 
						|
    Connection(const std::string& address,
 | 
						|
               uint16_t port,
 | 
						|
               const std::string& user,
 | 
						|
               const std::string& password,
 | 
						|
               uint32_t flags = CDC_REQUEST_TYPE_JSON);
 | 
						|
    virtual ~Connection();
 | 
						|
    bool createConnection();
 | 
						|
    bool requestData(const std::string& table, const std::string& gtid = "");
 | 
						|
    bool readRow(std::string& dest);
 | 
						|
    void closeConnection();
 | 
						|
    const std::string& getSchema() const
 | 
						|
    {
 | 
						|
        return m_schema;
 | 
						|
    }
 | 
						|
    const std::string& getError() const
 | 
						|
    {
 | 
						|
        return m_error;
 | 
						|
    }
 | 
						|
 | 
						|
private:
 | 
						|
    int m_fd;
 | 
						|
    uint32_t m_flags;
 | 
						|
    uint16_t m_port;
 | 
						|
    std::string m_address;
 | 
						|
    std::string m_user;
 | 
						|
    std::string m_password;
 | 
						|
    std::string m_error;
 | 
						|
    std::string m_schema;
 | 
						|
 | 
						|
    bool doAuth();
 | 
						|
    bool doRegistration();
 | 
						|
};
 | 
						|
 | 
						|
}
 |