classdef SILDebuggingInfo < handle
% SILDEBUGGINGINFO provides status and breakpoint information for 
% SILDebugging
%
%   This is an undocumented class. Its methods and properties are
%   likely to change without warning from one release to the next.

%   Copyright 2019-2023 The MathWorks, Inc.
    
    properties (SetAccess = private)
        IsEnabled (1,1) logical = false;
        IsSimulationStepperEnabled (1,1) logical = false;
        BreakpointsInfo struct;
        IsExecutionTracingEnable (1,1) logical = false;
    end
    
    
    methods
        function this = SILDebuggingInfo(isEnabled, needClassPrefix, compInterface, className, breakpointsInfo, isSimulationStepperEnabled, isExecutionTracingEnable)
            
            arguments
               isEnabled = false
               needClassPrefix = false
               compInterface = []
               className = ''
               breakpointsInfo = []
               isSimulationStepperEnabled = false
               isExecutionTracingEnable = false;
            end
                       
            this.IsEnabled = isEnabled;
            this.IsSimulationStepperEnabled = isSimulationStepperEnabled;
            this.IsExecutionTracingEnable = isExecutionTracingEnable;
            if isEnabled
                if isempty(compInterface)
                    this.BreakpointsInfo = breakpointsInfo;
                else
                    this.BreakpointsInfo = ...
                        rtw.connectivity.XILDebugger.createBreakpointsInfo(needClassPrefix, compInterface, className);
                end
            end
        end
    end
end
