class Fluent::PluginHelper::Storage::PersistentWrapper

Public Class Methods

new(storage) click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 188
def initialize(storage)
  @storage = storage
  @monitor = Monitor.new
end

Public Instance Methods

autosave() click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 205
def autosave
  false
end
delete(key) click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 252
def delete(key)
  @monitor.synchronize do
    @storage.load
    val = @storage.delete(key)
    @storage.save
    val
  end
end
fetch(key, defval) click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 236
def fetch(key, defval)
  @monitor.synchronize do
    @storage.load
    @storage.fetch(key, defval)
  end
end
get(key) click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 229
def get(key)
  @monitor.synchronize do
    @storage.load
    @storage.get(key)
  end
end
implementation() click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 213
def implementation
  @storage
end
load() click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 217
def load
  @monitor.synchronize do
    @storage.load
  end
end
persistent() click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 201
def persistent
  true
end
persistent_always?() click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 197
def persistent_always?
  true
end
put(key, value) click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 243
def put(key, value)
  @monitor.synchronize do
    @storage.load
    @storage.put(key, value)
    @storage.save
    value
  end
end
save() click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 223
def save
  @monitor.synchronize do
    @storage.save
  end
end
synchronized?() click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 209
def synchronized?
  true
end
update(key, &block) click to toggle source
# File lib/fluent/plugin_helper/storage.rb, line 261
def update(key, &block)
  @monitor.synchronize do
    @storage.load
    v = block.call(@storage.get(key))
    @storage.put(key, v)
    @storage.save
    v
  end
end