@oaklean/profiler-core
Version:
Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec
38 lines (37 loc) • 2.44 kB
TypeScript
import { ModuleReport } from './ModuleReport';
import { ProjectReport } from './ProjectReport';
import { SourceNodeMetaData } from './SourceNodeMetaData';
import { ModelMap } from './ModelMap';
import { ModelSet } from './ModelSet';
import { GlobalIndex } from './indices/GlobalIndex';
import { SourceNodeID_number, SourceNodeMetaDataType, SourceNodeMetaDataType_Node, SourceNodeMetaDataType_Reference } from '../types';
type ReportID = number;
type SourceNodeID_string = `${ReportID}:${SourceNodeID_number}`;
type ReferenceMap = ModelMap<SourceNodeID_string, ModelMap<SourceNodeID_string, SourceNodeMetaData<SourceNodeMetaDataType_Reference>>>;
export declare class SourceNodeGraph {
private _sourceNodes;
private _outgoingSum;
private _incomingSum;
private _outgoingEdges;
private _incomingEdges;
private _reachabilityCache;
constructor();
get sourceNodes(): ModelMap<`${number}:${SourceNodeID_number}`, SourceNodeMetaData<SourceNodeMetaDataType_Node>>;
get outgoingEdges(): ReferenceMap;
get incomingEdges(): ReferenceMap;
outgoingSumOfNode(nodeID: SourceNodeID_string): SourceNodeMetaData<SourceNodeMetaDataType.Aggregate> | undefined;
incomingSumOfNode(nodeID: SourceNodeID_string): SourceNodeMetaData<SourceNodeMetaDataType.Aggregate> | undefined;
addReferenceEdge(fromReport: ProjectReport | ModuleReport, fromSourceNode: SourceNodeMetaData<SourceNodeMetaDataType_Node>, toReport: ProjectReport | ModuleReport, toSourceNode: SourceNodeMetaData<SourceNodeMetaDataType_Node>, reference: SourceNodeMetaData<SourceNodeMetaDataType_Reference>): void;
private insertSourceNode;
static fromProjectReport(projectReport: ProjectReport): SourceNodeGraph;
static fromReport(report: ProjectReport | ModuleReport, globalIndex: GlobalIndex, graph?: SourceNodeGraph): SourceNodeGraph;
toJSON(): {
sourceNodes: Record<string | number, unknown> | undefined;
outgoingEdges: Record<string | number, unknown> | undefined;
incomingEdges: Record<string | number, unknown> | undefined;
};
reachabilityForNode(nodeID: SourceNodeID_string): ModelSet<SourceNodeID_string>;
dfs(sourceNodeID: SourceNodeID_string, visited: ModelSet<SourceNodeID_string>, reach?: ModelMap<SourceNodeID_string, ModelSet<SourceNodeID_string>>): void;
reachability(): ModelMap<`${number}:${SourceNodeID_number}`, ModelSet<`${number}:${SourceNodeID_number}`>>;
}
export {};