Class: Localjob::SysvAdapter

Inherits:
Object
  • Object
show all
Includes:
SysVIPC
Defined in:
lib/localjob/sysv_adapter.rb

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ SysvAdapter



14
15
16
# File 'lib/localjob/sysv_adapter.rb', line 14

def initialize(name)
  @filename = "/tmp/#{name}"
end

Instance Method Details

#destroyObject



41
42
43
44
45
# File 'lib/localjob/sysv_adapter.rb', line 41

def destroy
  File.delete(@filename)
  @mq.rm
  @mq = nil
end

#mqObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/localjob/sysv_adapter.rb', line 18

def mq
  unless @mq
    File.open(@filename, "w") { }
    key = ftok(@filename, 0)
  
    @mq = MessageQueue.new(key, IPC_CREAT | 0600)
  end
  
  @mq
end

#receiveObject



29
30
31
# File 'lib/localjob/sysv_adapter.rb', line 29

def receive
  mq.receive(0, 8024)
end

#send(message) ⇒ Object



33
34
35
# File 'lib/localjob/sysv_adapter.rb', line 33

def send(message)
  mq.send(1, message)
end

#sizeObject



37
38
39
# File 'lib/localjob/sysv_adapter.rb', line 37

def size
  mq.ipc_stat.msg_qnum
end