@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
111 lines • 7.27 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 () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__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) {
PermissionHelper_1.PermissionHelper.writeFileWithUserPermission(filePath, JSON.stringify(this));
}
static fromJSON(json,
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unused-vars
...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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljc0RhdGFDb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGVsL2ludGVyZmFjZXMvTWV0cmljc0RhdGFDb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF3QjtBQUd4Qix5REFBcUQ7QUFDckQsdURBQW1EO0FBQ25ELDJGQUF1RjtBQUd2Riw0Q0FBd0M7QUFDeEMsb0VBQWdFO0FBQ2hFLFFBQVE7QUFDUix1Q0FRb0I7QUFFcEIsTUFBYSxxQkFBc0IsU0FBUSxxQkFBUztJQU9uRCxZQUNDLEdBQVcsRUFDWCxJQUErQixFQUMvQixLQUF3QixFQUN4QixRQUFrQjtRQUVsQixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFBO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUE7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksR0FBRztRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQTtJQUNqQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDbkIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUN0QixDQUFDO0lBRUQsTUFBTTtRQUNMLE9BQU87WUFDTixHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekMsUUFBUSxFQUFFO2dCQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQzlDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7YUFDNUM7U0FDRCxDQUFBO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFxQjtRQUNoQyxtQ0FBZ0IsQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzdFLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUNkLElBQXFDO0lBQ3JDLGdHQUFnRztJQUNoRyxHQUFHLElBQVc7UUFFZCxJQUFJLElBQTRCLENBQUE7UUFDaEMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksR0FBRyxJQUFJLENBQUE7UUFDWixDQUFDO1FBRUQsT0FBTyxJQUFJLHFCQUFxQixDQUMvQixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxpQ0FBeUIsQ0FBQyxzQkFBc0I7b0JBQ3BELE9BQU8sbUNBQWdCLENBQUMsUUFBUSxDQUFDLENBQXNCLENBQUMsQ0FBQTtnQkFDekQsS0FBSyxpQ0FBeUIsQ0FBQyxlQUFlO29CQUM3QyxPQUFPLGlDQUFlLENBQUMsUUFBUSxDQUFDLENBQXFCLENBQUMsQ0FBQTtnQkFDdkQsS0FBSyxpQ0FBeUIsQ0FBQyxpQ0FBaUM7b0JBQy9ELE9BQU8scUVBQWlDLENBQUMsUUFBUSxDQUNoRCxDQUF1QyxDQUN2QyxDQUFBO1lBQ0gsQ0FBQztRQUNGLENBQUMsQ0FBQyxFQUNGO1lBQ0MsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBdUI7WUFDaEUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBdUI7U0FDOUQsQ0FDRCxDQUFBO0lBQ0YsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQ2xCLFFBQXFCO1FBRXJCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLFNBQVMsQ0FBQTtRQUNqQixDQUFDO1FBQ0QsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQ3BDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FDdkQsQ0FBQTtJQUNGLENBQUM7Q0FDRDtBQWhHRCxzREFnR0MifQ==