classdef (Hidden = true) RLSCodeInterfaceFactory < rtw.pil.CodeInterfaceFactory
    %RLSCODEINTERFACEFACTORY Factory for SIL/PIL RLS subsystem interface objects
    %
    %   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
        function codeInfoUtils = createCodeInfoUtils(~, ...
                codeInfoPath, clientInterface, configInterface, componentName, runValidation)
            codeInfoUtils = coder.connectivity.RLSCodeDescriptorUtils(...
                codeInfoPath, clientInterface, configInterface, componentName, runValidation);
        end
        
        function silPILWrapperUtils = createSILPILWrapperUtils(~, ...
                                                        silPILInterface, ...
                                                        infoStruct, ...
                                                        clientInterface,...
                                                        topModelOriginalParams, ...
                                                        lXilCompInfo)
            silPILWrapperUtils = rtw.pil.RLSSILPILWrapperUtils(...
                                                             silPILInterface, ...
                                                             infoStruct, ...
                                                             clientInterface, ...
                                                             topModelOriginalParams, ...
                                                             lXilCompInfo);
        end
        
        function hostSfun = createHostSfunction(~, ...
                                                silPILWrapperUtils, ...
                                                sfunSourcePath, ...
                                                sfunBinDir)             
            hostSfun = rtw.pil.SubsystemSfunction(silPILWrapperUtils, ....
                                                 sfunSourcePath, ...
                                                 sfunBinDir);              
        end
        
        function targetInterface = createTargetInterface(~, ...
                                                         silPILWrapperUtils, ...
                                                         pilInterfaceTarget)
            targetInterface = rtw.pil.SubsystemTargetInterface(silPILWrapperUtils, ...
                                                                pilInterfaceTarget);                                                            
        end
    end
end
