UNPKG

@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
"use strict"; 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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