Class: Ecco::Client

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/ecco/client.rb

Constant Summary collapse

DEFAULT_CONNECT_TIMEOUT =

ms

3000

Instance Method Summary collapse

Constructor Details

#initialize(hostname: "localhost", port: 3306, username:, password:) ⇒ Client

Returns a new instance of Client.



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/ecco/client.rb', line 38

def initialize(hostname: "localhost", port: 3306, username:, password:)
  @client = BinaryLogClient.new(hostname, port, username, password)

  @row_event_listener  = RowEventListener.new(self)
  @client.register_event_listener(@row_event_listener)

  @save_event_listener = SaveEventListener.new(self)
  @client.register_event_listener(@save_event_listener)

  @lifecycle_failure_listener = LifecycleFailureListener.new
  @client.register_lifecycle_listener(@lifecycle_failure_listener)
end

Instance Method Details

#connected?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/ecco/client.rb', line 73

def connected?
  @client.is_connected
end

#get_keep_alive_connect_timeoutObject



21
22
23
24
25
26
# File 'lib/ecco/client.rb', line 21

def get_keep_alive_connect_timeout
  warn "[DEPRECATION] `#{__method__}` is deprecated. "\
       "Please use `get_connect_timeout` instead."

  get_connect_timeout
end

#on_communication_failure(&block) ⇒ Object



59
60
61
# File 'lib/ecco/client.rb', line 59

def on_communication_failure(&block)
  @lifecycle_failure_listener.callback = block
end

#on_row_event(&block) ⇒ Object



55
56
57
# File 'lib/ecco/client.rb', line 55

def on_row_event(&block)
  @row_event_listener.callback = block
end

#on_save_position(&block) ⇒ Object



51
52
53
# File 'lib/ecco/client.rb', line 51

def on_save_position(&block)
  @save_event_listener.callback = block
end

#set_keep_alive_connect_timeout(timeout) ⇒ Object



28
29
30
31
32
33
# File 'lib/ecco/client.rb', line 28

def set_keep_alive_connect_timeout(timeout)
  warn "[DEPRECATION] `#{__method__}` is deprecated. "\
       "Please use `set_connect_timeout` instead."

  set_connect_timeout(timeout)
end

#startObject



63
64
65
66
67
# File 'lib/ecco/client.rb', line 63

def start
  @client.connect
rescue IOException => e
  raise Ecco::Error::ConnectionError, e.get_message
end

#start_in_thread(connect_timeout: DEFAULT_CONNECT_TIMEOUT) ⇒ Object



69
70
71
# File 'lib/ecco/client.rb', line 69

def start_in_thread(connect_timeout: DEFAULT_CONNECT_TIMEOUT)
  @client.connect(connect_timeout)
end

#stopObject



77
78
79
# File 'lib/ecco/client.rb', line 77

def stop
  @client.disconnect
end