@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
102 lines • 7.28 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MetricsDataCollection = void 0;
const fs = __importStar(require("fs"));
const PowerMetricsData_1 = require("./PowerMetricsData");
const PerfMetricsData_1 = require("./PerfMetricsData");
const WindowsSensorInterfaceMetricsData_1 = require("./WindowsSensorInterfaceMetricsData");
const BaseModel_1 = require("../BaseModel");
const PermissionHelper_1 = require("../../helper/PermissionHelper");
// Types
const types_1 = require("../../types");
class MetricsDataCollection extends BaseModel_1.BaseModel {
constructor(pid, type, items, timeInfo) {
super();
this._pid = pid;
this._type = type;
this._items = items;
this._timeInfo = timeInfo;
}
get pid() {
return this._pid;
}
get type() {
return this._type;
}
get items() {
return this._items;
}
get timeInfo() {
return this._timeInfo;
}
toJSON() {
return {
pid: this._pid,
type: this._type,
items: this._items.map((x) => x.toJSON()),
timeInfo: {
startTime: this._timeInfo.startTime.toString(),
stopTime: this._timeInfo.stopTime.toString()
},
};
}
storeToFile(filePath) {
if (!fs.existsSync(filePath.dirName().toPlatformString())) {
PermissionHelper_1.PermissionHelper.mkdirRecursivelyWithUserPermission(filePath.dirName().toPlatformString());
}
PermissionHelper_1.PermissionHelper.writeFileWithUserPermission(filePath.toPlatformString(), JSON.stringify(this));
}
static fromJSON(json, ...args) {
let data;
if (typeof json === 'string') {
data = JSON.parse(json);
}
else {
data = json;
}
return new MetricsDataCollection(data.pid, data.type, data.items.map((x) => {
switch (data.type) {
case types_1.MetricsDataCollectionType.PowerMetricsPerProcess:
return PowerMetricsData_1.PowerMetricsData.fromJSON(x);
case types_1.MetricsDataCollectionType.PerfTotalSystem:
return PerfMetricsData_1.PerfMetricsData.fromJSON(x);
case types_1.MetricsDataCollectionType.WindowsSensorInterfaceTotalSystem:
return WindowsSensorInterfaceMetricsData_1.WindowsSensorInterfaceMetricsData.fromJSON(x);
}
}), {
startTime: BigInt(data.timeInfo.startTime),
stopTime: BigInt(data.timeInfo.stopTime)
});
}
static loadFromFile(filePath) {
if (!fs.existsSync(filePath.toPlatformString())) {
return undefined;
}
return MetricsDataCollection.fromJSON(fs.readFileSync(filePath.toPlatformString()).toString());
}
}
exports.MetricsDataCollection = MetricsDataCollection;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljc0RhdGFDb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGVsL2ludGVyZmFjZXMvTWV0cmljc0RhdGFDb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXdCO0FBR3hCLHlEQUFxRDtBQUNyRCx1REFBbUQ7QUFDbkQsMkZBQXVGO0FBR3ZGLDRDQUF3QztBQUN4QyxvRUFBZ0U7QUFDaEUsUUFBUTtBQUNSLHVDQVFvQjtBQUVwQixNQUFhLHFCQUFzQixTQUFRLHFCQUFTO0lBT25ELFlBQ0MsR0FBVyxFQUNYLElBQStCLEVBQy9CLEtBQXdCLEVBQ3hCLFFBQWtCO1FBRWxCLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUE7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtJQUMxQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUE7SUFDbEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNuQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3RCLENBQUM7SUFFRCxNQUFNO1FBQ0wsT0FBTztZQUNOLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVB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