classdef (Hidden = true) ModelRefCodeInterfaceFactory < rtw.pil.CodeInterfaceFactory
    %MODELREFCODEINTERFACEFACTORY Factory for SIL/PIL model ref code interface objects
    %
    %   This is an undocumented class. Its methods and properties are likely to
    %   change without warning from one release to the next.
    
    %   Copyright 2010-2019 The MathWorks, Inc.
    
    methods
        function codeInfoUtils = createCodeInfoUtils(~, ...
                codeInfoPath, clientInterface, configInterface, componentName, runValidation)
            codeInfoUtils = coder.connectivity.ModelRefCodeInfoUtils(...
                codeInfoPath, clientInterface, configInterface, componentName, runValidation);
        end
        
        function silPILWrapperUtils = createSILPILWrapperUtils(~, ...
                                                        silPILInterface, ...
                                                        infoStruct, ...
                                                        clientInterface,...
                                                        topModelOriginalParams, ...
                                                        lXilCompInfo)
            silPILWrapperUtils = rtw.pil.ModelRefSILPILWrapperUtils(...
                                                             silPILInterface, ...
                                                             infoStruct, ...
                                                             clientInterface, ...
                                                             topModelOriginalParams, ...
                                                             lXilCompInfo);
        end
        
        function hostSfun = createHostSfunction(~, ...
                                                silPILWrapperUtils, ...
                                                sfunSourcePath, ...
                                                sfunBinDir)             
            hostSfun = rtw.pil.ModelBlockSfunction(silPILWrapperUtils, ....
                                                 sfunSourcePath, ...
                                                 sfunBinDir);              
        end
        
        function targetInterface = createTargetInterface(~, ...
                                                         silPILWrapperUtils, ...
                                                         pilInterfaceTarget)
            targetInterface = rtw.pil.ModelBlockTargetInterface(silPILWrapperUtils, ...
                                                                pilInterfaceTarget);                                                            
        end
    end
end
