Class: FFI::AutoPointer::Releaser Abstract
- Inherits:
-
Object
- Object
- FFI::AutoPointer::Releaser
- Defined in:
- lib/ffi/autopointer.rb
Overview
This class is abstract.
Base class for FFI::AutoPointer's releasers.
All subclasses of Releaser should define a #release(ptr) method.
A releaser is an object in charge of release an FFI::AutoPointer.
Direct Known Subclasses
Instance Method Summary (collapse)
-
- (Boolean) autorelease=(autorelease)
Set autorelease attribute for pointer managed by Releaser.
-
- (Object) call(*args)
Release pointer if autorelease is set.
-
- (nil) free
Free pointer.
-
- (nil) initialize(ptr, proc)
constructor
A new instance of Releaser.
Constructor Details
- (nil) initialize(ptr, proc)
A new instance of Releaser.
106 107 108 109 110 |
# File 'lib/ffi/autopointer.rb', line 106 def initialize(ptr, proc) @ptr = ptr @proc = proc @autorelease = true end |
Instance Method Details
- (Boolean) autorelease=(autorelease)
Set autorelease attribute for pointer managed by Releaser.
126 127 128 |
# File 'lib/ffi/autopointer.rb', line 126 def autorelease=(autorelease) @autorelease = autorelease if @ptr end |
- (Object) call(*args)
Release pointer if autorelease is set.
132 133 134 |
# File 'lib/ffi/autopointer.rb', line 132 def call(*args) release(@ptr) if @autorelease && @ptr end |
- (nil) free
Free pointer.
114 115 116 117 118 119 120 121 |
# File 'lib/ffi/autopointer.rb', line 114 def free if @ptr release(@ptr) @autorelease = false @ptr = nil @proc = nil end end |