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_usageLib::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
pointerFFI::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
kindSymbol 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