classdef (Hidden = true, Abstract) SubsystemSILPILWrapperUtils < rtw.pil.ModelRefSILPILWrapperUtils
%SUBSYSTEMSILPILWRAPPERUTILS SIL/PIL subsystem wrapper utilities
%
%   This is an undocumented class. Its methods and properties are likely to
%   change without warning from one release to the next.

%   Copyright 2019-2020 The MathWorks, Inc.
        
    methods
        % constructor
        function this = SubsystemSILPILWrapperUtils(silPILInterface, ...
                                            infoStruct, ...
                                            clientInterface,...
                                            topModelOriginalParams, ...
                                            lXilCompInfo)

            % call super class constructor                             
            this@rtw.pil.ModelRefSILPILWrapperUtils(silPILInterface, ...
                                            infoStruct, ...
                                            clientInterface, ...
                                            topModelOriginalParams, ...
                                            lXilCompInfo);
        end
        
        function name = getComponentForSfuncName(this)
            % return the name of the component after which the Sfunction is
            % going to be named
            name = this.getSILPILInterface().getRootModel();
        end
        
        function name = getComponentForDiagnostics(this)
            % return the name of the Root Component for reporting in
            % diagnostic messages
            name = this.getSILPILInterface().SubsystemName;
        end
        
        function isSupported = isStateLoggingSupported(~)
            % logging is not supported for subsystem workflows
            isSupported = false;
        end
        
        function isSupported = isSignalLoggingSupported(~)
            % logging is not supported for subsystem workflows
            isSupported = false;
        end

        function needSupport = needServiceSupport(~)
            % skip service support in subsystem workflows
            needSupport = false;
        end
    end
end
