classdef (Hidden = true) ConfigInterface < handle
%CONFIGINTERFACE Abstract interface to config for
% clients such as MATLAB Coder and Simulink Coder.
%
% This is an undocumented class. Its methods and properties are likely to
% change without warning from one release to the next.

% Copyright 2013-2019 The MathWorks, Inc.

properties (Abstract, Access = 'protected')
Config;
CodeGenComponent;
end

methods
function config = getConfig(this)
config = this.Config;
end

function codeGenComponent = getCodeGenComponent(this)
codeGenComponent = this.CodeGenComponent;
end

function val = isToolchainBased(this, varargin)
% Determine if we are using Build Tool Integration
val = coder.make.internal.usingToolchainInfo...
(this.getResolvedConfig, varargin{:});
end
end

methods (Abstract)
value = getParam(this, param);

isValid = isValidParam(this, param);

resolvedConfig = getResolvedConfig(this);

hostWordLengths = getHostWordLengths(this);
hostImplementation = getHostImplProperties(this);
end
end