Class: Pitchfork::MessageSocket

Inherits:
Object
  • Object
show all
Defined in:
lib/pitchfork/message.rb

Defined Under Namespace

Classes: FD

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(socket) ⇒ MessageSocket

Returns a new instance of MessageSocket.



16
17
18
# File 'lib/pitchfork/message.rb', line 16

def initialize(socket)
  @socket = socket
end

Class Method Details

.ruby2_keywords(*args) ⇒ Object



8
9
10
# File 'lib/pitchfork/message.rb', line 8

def ruby2_keywords(*args)
  args
end

Instance Method Details

#closeObject



37
38
39
# File 'lib/pitchfork/message.rb', line 37

def close
  @socket.close
end

#close_readObject



29
30
31
# File 'lib/pitchfork/message.rb', line 29

def close_read
  @socket.close_read
end

#close_writeObject



33
34
35
# File 'lib/pitchfork/message.rb', line 33

def close_write
  @socket.close_write
end

#recvmsg_nonblock(exception: true) ⇒ Object



62
63
64
65
66
67
68
69
# File 'lib/pitchfork/message.rb', line 62

def recvmsg_nonblock(exception: true)
  case message = @socket.recvmsg_nonblock(scm_rights: true, exception: exception)
  when Array
    load_message(message)
  else
    message
  end
end

#sendmsg(message) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/pitchfork/message.rb', line 41

def sendmsg(message)
  payload, ios = dump_message(message)
  @socket.sendmsg(
    payload,
    0,
    nil,
    *ios.map { |io| Socket::AncillaryData.unix_rights(io) },
  )
end

#sendmsg_nonblock(message, exception: true) ⇒ Object



51
52
53
54
55
56
57
58
59
60
# File 'lib/pitchfork/message.rb', line 51

def sendmsg_nonblock(message, exception: true)
  payload, ios = dump_message(message)
  @socket.sendmsg_nonblock(
    payload,
    0,
    nil,
    *ios.map { |io| Socket::AncillaryData.unix_rights(io) },
    exception: exception,
  )
end

#to_ioObject



20
21
22
# File 'lib/pitchfork/message.rb', line 20

def to_io
  @socket
end

#wait(*args) ⇒ Object



24
25
26
# File 'lib/pitchfork/message.rb', line 24

def wait(*args)
  @socket.wait(*args)
end