Class: MessagePack::Factory::Pool

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

Defined Under Namespace

Classes: MemberPool

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Pool.



181
182
183
184
185
186
# File 'lib/msgpack/factory.rb', line 181

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

Instance Method Details

#dump(object) ⇒ Object



195
196
197
198
199
200
# File 'lib/msgpack/factory.rb', line 195

def dump(object)
  @packers.with do |packer|
    packer.write(object)
    packer.full_pack
  end
end

#load(data) ⇒ Object



188
189
190
191
192
193
# File 'lib/msgpack/factory.rb', line 188

def load(data)
  @unpackers.with do |unpacker|
    unpacker.feed(data)
    unpacker.full_unpack
  end
end

#packer(&block) ⇒ Object



206
207
208
# File 'lib/msgpack/factory.rb', line 206

def packer(&block)
  @packers.with(&block)
end

#unpacker(&block) ⇒ Object



202
203
204
# File 'lib/msgpack/factory.rb', line 202

def unpacker(&block)
  @unpackers.with(&block)
end