Class: Riser::ResourceSet::Proxy

Inherits:
Delegator
  • Object
show all
Includes:
DRb::DRbUndumped, Riser::Resource::Delegatable, Riser::Resource::DelegateUnrefAlias
Defined in:
lib/riser/resource.rb

Instance Method Summary collapse

Methods included from Riser::Resource::DelegateUnrefAlias

#respond_to_missing?

Methods included from Riser::Resource::Delegatable

#__getobj__

Constructor Details

#initialize(manager, unref_alias_set, access_key) ⇒ Proxy

Returns a new instance of Proxy.



303
304
305
306
307
308
309
310
# File 'lib/riser/resource.rb', line 303

def initialize(manager, unref_alias_set, access_key)
  @manager = manager
  @unref_alias_set = unref_alias_set
  @access_key = access_key
  # if an exception occurs at `@create.call', the proxy should not be referenced.
  __setobj__(@manager.ref_object(@access_key))
  @manager.ref_proxy(self)
end

Instance Method Details

#__unref__Object



312
313
314
315
316
317
318
319
320
321
322
323
324
# File 'lib/riser/resource.rb', line 312

def __unref__
  delegated = true
  __getobj__{ delegated = false }

  if (delegated) then
    __setobj__(nil)
    @manager.unref_proxy(self)
    # even if an exception occurs at `@destroy.call', the proxy should be unreferenced.
    @manager.unref_object(@access_key)
  end

  nil
end