Class: ASIR::Transport::TcpSocket

Inherits:
ConnectionOriented show all
Defined in:
lib/asir/transport/tcp_socket.rb

Overview

!SLIDE TCP Socket Transport

Constant Summary

Constants included from PayloadIO

PayloadIO::FOOTER, PayloadIO::HEADER

Constants included from UriConfig

UriConfig::S_LOCALHOST, UriConfig::S_TCP

Constants included from ASIR::ThreadVariable

ASIR::ThreadVariable::DEBUG, ASIR::ThreadVariable::EMPTY_HASH, ASIR::ThreadVariable::SETTER

Instance Attribute Summary

Attributes included from UriConfig

#host, #host_default, #path, #path_default, #port, #port_default, #scheme, #scheme_default, #uri

Attributes inherited from ASIR::Transport

#after_invoke_message, #after_receive_message, #before_send_message, #coder_needs_result_message, #decoder, #encoder, #invoker, #message_count, #needs_message_identifier, #needs_message_timestamp, #on_exception, #on_result_exception, #one_way, #running, #verbose

Attributes included from Log

#_logger

Instance Method Summary collapse

Methods inherited from ConnectionOriented

#_after_connect!, #_before_close!, #_connect!, #_receive_message, #_receive_result, #_send_message, #_send_result, #_server_close!, #connect!, #prepare_server!, #run_server!, #serve_connection!, #server_on_start!, #server_on_stop!, #stream

Methods included from PayloadIO

#_read, #_read_line_and_expect!, #_write, #close

Methods included from UriConfig

#_uri, #address, #protocol

Methods inherited from Stream

#_serve_stream!, #serve_stream!, #serve_stream_message!, #stream_eof?

Methods inherited from ASIR::Transport

#_subclass_responsibility, #initialize, #invoke_message!, #needs_message_identifier?, #needs_message_timestamp?, #receive_message, #receive_result, #send_message, #send_result, #serve_message!, #stop!, #with_server_signals!

Methods included from Log

#_log, #_log_enabled=, #_log_enabled?, #_log_format, #_log_result, enabled, enabled=, included

Methods included from Initialization

#initialize

Methods included from AdditionalData

#[], #[]=, #_additional_data, #additional_data, #additional_data!, #additional_data=, included

Methods included from Message::Delay

#relative_message_delay!, #wait_for_delay!

Methods included from ASIR::ThreadVariable

included, setter

Constructor Details

This class inherits a constructor from ASIR::Transport

Instance Method Details

#_client_connect!Object

!SLIDE TCP Socket Client



11
12
13
# File 'lib/asir/transport/tcp_socket.rb', line 11

def _client_connect!
  sock = ::TCPSocket.open(host, port)
end

#_server!Object

!SLIDE TCP Socket Server



17
18
19
20
# File 'lib/asir/transport/tcp_socket.rb', line 17

def _server!
  @server = ::TCPServer.open(port)
  @server.setsockopt(::Socket::SOL_SOCKET, ::Socket::SO_KEEPALIVE, false)
end

#_server_accept_connection!(server) ⇒ Object



22
23
24
25
# File 'lib/asir/transport/tcp_socket.rb', line 22

def _server_accept_connection! server
  socket = server.accept
  [ socket, socket ] # Use same socket for in_stream and out_stream
end

#_server_close_connection!(in_stream, out_stream) ⇒ Object



27
28
29
# File 'lib/asir/transport/tcp_socket.rb', line 27

def _server_close_connection! in_stream, out_stream
  in_stream.close rescue nil
end