FFI::ClangSourceFFIClangTranslationUnitResourceUsage

class ResourceUsage

Represents resource usage statistics for a translation unit.

Definitions

def initialize(resource_usage)

Initialize resource usage from a CXTUResourceUsage structure.

Signature

parameter resource_usage Lib::CXTUResourceUsage

The resource usage structure.

Implementation

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

def self.release(pointer)

Release the resource usage pointer.

Signature

parameter pointer FFI::Pointer

The resource usage pointer to release.

Implementation

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

def self.name(kind)

Get the name of a resource usage kind.

Signature

parameter kind Symbol

The resource usage kind.

returns String

The name of the resource kind.

Implementation

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

def entries

Get all resource usage entries.

Signature

returns Array(Lib::CXTUResourceUsageEntry)

The resource usage entries.

Implementation

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