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.



142
143
144
145
146
147
# File 'lib/msgpack/factory.rb', line 142

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



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

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

#load(data) ⇒ Object



149
150
151
152
153
154
# File 'lib/msgpack/factory.rb', line 149

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

#packer(&block) ⇒ Object



167
168
169
# File 'lib/msgpack/factory.rb', line 167

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

#unpacker(&block) ⇒ Object



163
164
165
# File 'lib/msgpack/factory.rb', line 163

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