Class: FFI::Clang::TranslationUnit::ResourceUsage

Inherits:
AutoPointer
  • Object
show all
Defined in:
lib/ffi/clang/translation_unit.rb

Overview

Represents resource usage statistics for a translation unit.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_usage) ⇒ ResourceUsage

Initialize resource usage from a CXTUResourceUsage structure.



189
190
191
192
193
194
195
# File 'lib/ffi/clang/translation_unit.rb', line 189

def initialize(resource_usage)
  # CXResourceUsage is returned by value and should be freed explicitly.
  # Get FFI::pointer of the data so that the data is handled by AutoPointer.
  pointer = FFI::Pointer.new(resource_usage.to_ptr)
  super(pointer)
  @resource_usage = resource_usage
end

Class Method Details

.name(kind) ⇒ Object

Get the name of a resource usage kind.



207
208
209
# File 'lib/ffi/clang/translation_unit.rb', line 207

def self.name(kind)
  Lib.resource_usage_name(kind)
end

.release(pointer) ⇒ Object

Release the resource usage pointer.



199
200
201
202
# File 'lib/ffi/clang/translation_unit.rb', line 199

def self.release(pointer)
  # clang_disposeCXTUResourceUsage requires value type, so create it by pointer
  Lib.dispose_resource_usage(Lib::CXTUResourceUsage.new(pointer))
end

Instance Method Details

#entriesObject

Get all resource usage entries.



213
214
215
216
217
218
219
220
# File 'lib/ffi/clang/translation_unit.rb', line 213

def entries
  ary = []
  ptr = @resource_usage[:entries]
  @resource_usage[:numEntries].times {ary << Lib::CXTUResourceUsageEntry.new(ptr)
                                                                          ptr += Lib::CXTUResourceUsageEntry.size
  }
  ary
end