Skip to content

packages/engine/scram/targets/scram-node/src/ScramNodeReporter.h

Functions

Name
Napi::ObjectScramNodeReport(Napi::Env env, const scram::core::RiskAnalysis & analysis)
Napi::ObjectScramNodeModelFeatures(Napi::Env env, const scram::mef::Model & model)
Napi::ObjectScramNodeResults(Napi::Env env, const scram::core::RiskAnalysis & analysis)
Napi::ObjectScramNodeSafetyIntegrityLevels(Napi::Env env, const scram::core::ProbabilityAnalysis & pa)
Napi::ObjectScramNodeCurve(Napi::Env env, const scram::core::ProbabilityAnalysis & pa)
Napi::ObjectScramNodeStatisticalMeasure(Napi::Env env, const scram::core::UncertaintyAnalysis & ua)
Napi::ObjectScramNodeImportance(Napi::Env env, const scram::core::ImportanceAnalysis & ia)
Napi::ObjectScramNodeSumOfProducts(Napi::Env env, const scram::core::FaultTreeAnalysis & fta, const scram::core::ProbabilityAnalysis * pa, const scram::core::RiskAnalysis::Result * result =nullptr)
Napi::ArrayScramNodeQuantiles(Napi::Env env, const std::vector< double > & quantiles, double mean, double sigma)
Napi::ArrayScramNodeProductList(Napi::Env env, const scram::core::ProductContainer & products, const scram::core::ProbabilityAnalysis * pa)
voidScramNodeReportToJsonStream(std::ostream & out, const scram::core::RiskAnalysis & analysis, bool exclude_product_lists =false)
Napi::ObjectScramNodeExtractMetadataFromFile(Napi::Env env, const std::string & filePath, const scram::core::RiskAnalysis & analysis)

Functions Documentation

function ScramNodeReport

cpp
Napi::Object ScramNodeReport(
    Napi::Env env,
    const scram::core::RiskAnalysis & analysis
)

function ScramNodeModelFeatures

cpp
Napi::Object ScramNodeModelFeatures(
    Napi::Env env,
    const scram::mef::Model & model
)

function ScramNodeResults

cpp
Napi::Object ScramNodeResults(
    Napi::Env env,
    const scram::core::RiskAnalysis & analysis
)

function ScramNodeSafetyIntegrityLevels

cpp
Napi::Object ScramNodeSafetyIntegrityLevels(
    Napi::Env env,
    const scram::core::ProbabilityAnalysis & pa
)

function ScramNodeCurve

cpp
Napi::Object ScramNodeCurve(
    Napi::Env env,
    const scram::core::ProbabilityAnalysis & pa
)

function ScramNodeStatisticalMeasure

cpp
Napi::Object ScramNodeStatisticalMeasure(
    Napi::Env env,
    const scram::core::UncertaintyAnalysis & ua
)

function ScramNodeImportance

cpp
Napi::Object ScramNodeImportance(
    Napi::Env env,
    const scram::core::ImportanceAnalysis & ia
)

function ScramNodeSumOfProducts

cpp
Napi::Object ScramNodeSumOfProducts(
    Napi::Env env,
    const scram::core::FaultTreeAnalysis & fta,
    const scram::core::ProbabilityAnalysis * pa,
    const scram::core::RiskAnalysis::Result * result =nullptr
)

function ScramNodeQuantiles

cpp
Napi::Array ScramNodeQuantiles(
    Napi::Env env,
    const std::vector< double > & quantiles,
    double mean,
    double sigma
)

function ScramNodeProductList

cpp
Napi::Array ScramNodeProductList(
    Napi::Env env,
    const scram::core::ProductContainer & products,
    const scram::core::ProbabilityAnalysis * pa
)

function ScramNodeReportToJsonStream

cpp
void ScramNodeReportToJsonStream(
    std::ostream & out,
    const scram::core::RiskAnalysis & analysis,
    bool exclude_product_lists =false
)

function ScramNodeExtractMetadataFromFile

cpp
Napi::Object ScramNodeExtractMetadataFromFile(
    Napi::Env env,
    const std::string & filePath,
    const scram::core::RiskAnalysis & analysis
)

Source code

cpp
#pragma once
#include <napi.h>
#include <ostream>
#include "model.h"
#include "risk_analysis.h"
#include "probability_analysis.h"
#include "uncertainty_analysis.h"
#include "importance_analysis.h"
#include "fault_tree_analysis.h"
#include "event_tree_analysis.h"

// Forward declarations: helpers for Reporter
Napi::Object ScramNodeReport(Napi::Env env, const scram::core::RiskAnalysis& analysis);
Napi::Object ScramNodeModelFeatures(Napi::Env env, const scram::mef::Model& model);
Napi::Object ScramNodeResults(Napi::Env env, const scram::core::RiskAnalysis& analysis);
Napi::Object ScramNodeSafetyIntegrityLevels(Napi::Env env, const scram::core::ProbabilityAnalysis& pa);
Napi::Object ScramNodeCurve(Napi::Env env, const scram::core::ProbabilityAnalysis& pa);
Napi::Object ScramNodeStatisticalMeasure(Napi::Env env, const scram::core::UncertaintyAnalysis& ua);
Napi::Object ScramNodeImportance(Napi::Env env, const scram::core::ImportanceAnalysis& ia);
Napi::Object ScramNodeSumOfProducts(Napi::Env env, const scram::core::FaultTreeAnalysis& fta, const scram::core::ProbabilityAnalysis* pa, const scram::core::RiskAnalysis::Result* result = nullptr);
Napi::Array  ScramNodeQuantiles(Napi::Env env, const std::vector<double>& quantiles, double mean, double sigma);
Napi::Array  ScramNodeProductList(Napi::Env env, const scram::core::ProductContainer& products, const scram::core::ProbabilityAnalysis* pa);

// Streaming report writer used to avoid building large in-memory objects.
// If exclude_product_lists is true, only summary stats (probability, product count) are included
void ScramNodeReportToJsonStream(std::ostream& out, const scram::core::RiskAnalysis& analysis, bool exclude_product_lists = false);

// Extract only metadata from a JSON report file without loading massive productList arrays
// This reads the file, extracts essential fields, and returns a lightweight N-API object
Napi::Object ScramNodeExtractMetadataFromFile(Napi::Env env, const std::string& filePath, const scram::core::RiskAnalysis& analysis);

Updated on 2026-01-09 at 21:59:13 +0000