Class: OSC::TCP::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/qcmd/core_ext/osc/tcp_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(host, port, handler = nil) ⇒ Client

Returns a new instance of Client.



9
10
11
12
13
14
15
# File 'lib/qcmd/core_ext/osc/tcp_client.rb', line 9

def initialize host, port, handler=nil
  @host = host
  @port = port
  @handler = handler
  @socket = TCPSocket.new host, port
  @sending_socket = SendingSocket.new @socket
end

Instance Method Details

#closeObject



17
18
19
# File 'lib/qcmd/core_ext/osc/tcp_client.rb', line 17

def close
  @socket.close unless closed?
end

#closed?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/qcmd/core_ext/osc/tcp_client.rb', line 21

def closed?
  @socket.closed?
end

#responseObject



42
43
44
45
46
47
48
49
50
51
# File 'lib/qcmd/core_ext/osc/tcp_client.rb', line 42

def response
  if received_messages = receive_raw
    received_messages.map do |message|
      Qcmd.debug "[TCP::Client] message #{ message.inspect }"
      OSCPacket.messages_from_network(message)
    end.flatten
  else
    nil
  end
end

#send(msg) ⇒ Object

send an OSC::Message



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/qcmd/core_ext/osc/tcp_client.rb', line 26

def send msg
  @sending_socket.send msg
  if block_given? || @handler
    messages = response
    if !messages.nil?
      messages.each do |message|
        if block_given?
          yield message
        else
          @handler.handle message
        end
      end
    end
  end
end

#to_sObject



53
54
55
# File 'lib/qcmd/core_ext/osc/tcp_client.rb', line 53

def to_s
  "#<OSC::TCP::Client:#{ object_id } @host:#{ @host.inspect }, @port:#{ @port.inspect }, @handler:#{ @handler.to_s }>"
end