classdef (Hidden = true) ClientInterface < coder.connectivity.ClientInterface
%CLIENTINTERFACE Pure MATLAB-based (no Coder) implementation
% of ClientInterface to support rtiostreamtest.
%
% This is an undocumented class. Its methods and properties are likely to
% change without warning from one release to the next.

% Copyright 2014-2020 The MathWorks, Inc.

methods

function xilNoWrapper = XilNoWrapper(~)
% Implement abstract method required new architecture eliminating hidden model
xilNoWrapper = false;
end

% factory method to create a CoreClientInterface
function clientInterface = createCoreClientInterface(this)
clientInterface = coder.rtiostreamtest.CoreClientInterface;
end

% abstraction for BuildHook getLaunchEnvironmentVars
function envCmds = getLaunchEnvironmentVars(~, componentArgs)
envCmds = '';
end

% returns any additional directories that should be added to the
% system path before launching the application.
function extraPaths = additionalSystemPaths(this, componentArgs)
extraPaths = {};
end

% Code instrumentation info
function lCodeInstrInfo = getCodeInstrInfo(silPILInterface, lTopModel) %#ok<*STOUT,*INUSD>
assert(false, 'getCodeInstrInfo not supported.');
end

% factory method to create a ComponentArgs
function componentArgs = createComponentArgs(this, ...
componentPath, ...
componentCodePath, ...
componentCodeName, ...
applicationCodePath, ...
silPILInterface, ...
lTopModel,...
lBuildHooks, ...
lCodeExecutionProfilingEnabled)
assert(false, 'createComponentArgs not supported.');
end

% factory method to create a ConfigInterface
function config = createConfigInterface(~, config, codeGenComponent)
assert(false, 'getCodeInstrInfo not supported.');
end

% factory method to create a CodeInterfaceFactory
function codeInterfaceFactory = createCodeInterfaceFactory(this, silPILInterface, config)
assert(false, 'createCodeInterfaceFactory not supported.');
end

% load infoStruct based on codeDir
function [slprjInternalPath, codeName, infoStruct] = initializeInfoStruct(this, codeDir, inTheLoopType)
assert(false, 'initializeInfoStruct not supported.');
end

% deliver a notification to a specific context
function deliverNotification(this, context, notificationID, notificationMsg)
assert(false, 'deliverNotification not supported.');
end

% close notification given context
function closeNotification(this, context, notificationID)
assert(false, 'closeNotification not supported.');
end

% returns, as a string, a function to retrieve the SILPILInterface
function fcnStr = getSILPILInterfaceFcnStr(this)
assert(false, 'getSILPILInterfaceFcnStr not supported.');
end

% callback for code coverage
function executionCodeCoverageCallback(this, silPILInterface, blockPath, profData, rootModel, inTheLoopType)
assert(false, 'executionCodeCoverageCallback not supported.');
end

% callback for execution profiling
function executionProfileCallback(this, silPILInterface, blockPath, profData, rootModel, inTheLoopType)
assert(false, 'executionProfileCallback not supported.');
end

% callback for execution profiling
function executionProfileStartCallback(this, silPILInterface, blockPath, rootModel, inTheLoopType)
assert(false, 'executionProfileStartCallback not supported.');
end

% XIL s-function initialize hook
function rootLoggingPath = initializeHookBody(this, topModel, blockPath, inTheLoopType)
assert(false, 'initializeHookBody not supported.');
end

% accessor for block handle
function blockHandle = getBlockHandle(this, blockPath)
assert(false, 'getBlockHandle not supported.');
end

% returns the top-level context of the component under test
function topContext = getTopContext(this, blockPath, silPILInterface)
assert(false, 'getTopContext not supported.');
end

% dispatch a given BuildHook
function varargout = dispatchBuildHook(this, componentArgs, hookName, hookObj)
assert(false, 'dispatchBuildHook not supported.');
end

% Code instrumentation global registry
function lGlobalRegistry = createExecTimeGlobalReg(this, silPILInterface)
assert(false, 'createExecTimeGlobalReg not supported.');
end

% Return component name and reference (e.g. SID)
function [lComponentName, lComponentRef] = getComponentName(this, lComponentPath)
assert(false, 'getComponentName not supported.');
end

% update the code generation report
function updateReport(this, silPILInterface, buildInfo, wrapperInfoReportOutOfDate)
assert(false, 'updateReport not supported.');
end

% returns whether Signal Logging is enabled
function isLoggingEnabled = isSignalLoggingEnabled(this, silPILWrapperUtils, inTheLoopType)
assert(false, 'isSignalLoggingEnabled not supported.');
end

% Signal logging initialization
function [loggingData, ...
modelLoggingInfoStruct, ...
supportedDataInterfaces, ...
loggingIODataTypes] = ...
initializeSignalLoggingData(this, ...
silPILWrapperUtils, ...
capiData, ...
cachedXILBlockModelLoggingInfo, ...
inTheLoopType, ...
sigLogInfo)
assert(false, 'initializeLoggingData not supported.');
end

% returns whether State Logging is enabled
function isStateLoggingEnabled = isStateLoggingEnabled(this, silPILWrapperUtils, inTheLoopType)
assert(false, 'isStateLoggingEnabled not supported.');
end

% State logging initialization
function [loggingData, supportedDataInterfaces] = ...
initializeStateLoggingData(this, silPILWrapperUtils, ...
stateBlocks, isPostUpload, offset, inTheLoopType)
assert(false, 'initializeStateLoggingData not supported.');
end

function privateHeader = getPrivateHeader(~, ~)
assert(false, 'getPrivateHeader not supported.');
end

% initialization for internal performance profiling
function [isProfilingEnabled, ...
profilingMdlRefTgtType] = initializePerfProfiling(this, rootModel, inTheLoopType)
assert(false, 'initializePerfProfiling not supported.');
end

% record an internal performance profiling point
function perfProfile(this, desc, startOrEnd, isProfilingEnabled, profilingMdlRefTgtType, rootModel)
assert(false, 'perfProfile not supported.');
end

% get message displayed at the start of SIL simulation
function startMessage = getSILStartMessage(this, componentPath)
assert(false, 'getSILStartMessage not supported.');
end

% get message displayed at the end of SIL simulation
function stopMessage = getSILStopMessage(this, componentPath)
assert(false, 'getSILStopMessage not supported.');
end

% return whether EnablePauseTimes is enabled
function isEnabled = isPauseTimesEnabled(this, topContext)
assert(false, 'isPauseTimesEnabled not supported.');
end

% return whether this is the MATLAB Coder DLL target
function isDLL = isDLLTarget(this, configInterface)
assert(false, 'isDLLTarget not supported.');
end

% returns struct containing info relating to long long support
function longLongInfo = getLongLongInfo(this)
assert(false, 'getLongLongInfo not supported.');
end

function val = ciIsMATLABCodeGen(~)
assert(false, 'ciIsMATLABCodeGen not supported.');
end

% updates the file extension of main component library
function modelLib = updateModelLibExt(~, modelLib)
assert(false, 'updateModelLibExt not supported.');
end

% Determine if a DataElement with Matrix Type in CodeInfo is
% implemented as an array in generated code
function isMatrix = isArray(this, typeObject)
assert(false, 'isArray not supported.');
end

% Determine whether target should synchronize I/O during one shot call
function syncIODuringOneShot = syncIODuringOneShot(this) %#ok<*MANU>
assert(false, 'syncIODuringOneShot not supported.');
end

% Determine whether internal code coverage support is enabled
function isEnabled = isMWCodeCoverageEnabled(this)
isEnabled = false;
end

% Validate Use of Global Data Stores
function validateGlobalDataStores(this, wrapperUtils, inTheLoopType, silPILInterface, dataStoreList)
assert(false, 'validateGlobalDataStores not supported.');
end

function useCodeType = useCodeType(~)
assert(false, 'useCodeType not supported.')
end

% Open callback for the rtiostream
function rtIOStreamPreOpen(this, rtIOStream, isSIL)
assert(false, 'rtIOStreamPreOpen not supported.')
end
end
end