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

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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_usage) ⇒ ResourceUsage

Returns a new instance of ResourceUsage.



137
138
139
140
141
142
143
# File 'lib/ffi/clang/translation_unit.rb', line 137

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



150
151
152
# File 'lib/ffi/clang/translation_unit.rb', line 150

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

.release(pointer) ⇒ Object



145
146
147
148
# File 'lib/ffi/clang/translation_unit.rb', line 145

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



154
155
156
157
158
159
160
161
162
# File 'lib/ffi/clang/translation_unit.rb', line 154

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