Class: MessagePack::Factory::Pool

Inherits:
Object
  • Object
show all
Defined in:
lib/msgpack/factory.rb

Defined Under Namespace

Classes: AbstractPool, PackerPool, UnpackerPool

Instance Method Summary collapse

Constructor Details

#initialize(factory, size, options = nil) ⇒ Pool

Returns a new instance of Pool.



156
157
158
159
160
161
# File 'lib/msgpack/factory.rb', line 156

def initialize(factory, size, options = nil)
  options = nil if !options || options.empty?
  @factory = factory
  @packers = PackerPool.new(size) { factory.packer(options) }
  @unpackers = UnpackerPool.new(size) { factory.unpacker(options) }
end

Instance Method Details

#dump(object) ⇒ Object



173
174
175
176
177
178
179
180
181
# File 'lib/msgpack/factory.rb', line 173

def dump(object)
  packer = @packers.checkout
  begin
    packer.write(object)
    packer.full_pack
  ensure
    @packers.checkin(packer)
  end
end

#load(data) ⇒ Object



163
164
165
166
167
168
169
170
171
# File 'lib/msgpack/factory.rb', line 163

def load(data)
  unpacker = @unpackers.checkout
  begin
    unpacker.feed_reference(data)
    unpacker.full_unpack
  ensure
    @unpackers.checkin(unpacker)
  end
end