classdef EmptyTargetServices < coder.connectivity.targetservices.ITargetServices
    %EMPTYTARGETSERVICES Empty Target Services implementation to be used as
    %a default empty instance in coder_connectivity code so that the
    %interface can be initialized without dependency on an implementation
    %of the service. Only to be used with EmptyTargetServices.empty();

%   Copyright 2020-2022 The MathWorks, Inc.
    
    
    methods (Access=private)
        function this = EmptyTargetServices()
            this.assertUsage();
        end   
        
        function assertUsage(~)            
            assert(false, 'Class should only be used with EmptyTargetServices.empty()');
        end
    end
    
    methods
        
        % Initialize the services using the XIL component args
        function initialize(this, ~)
            this.assertUsage();
        end
        
        function value = getName(this) %#ok<*STOUT>
            this.assertUsage();
        end
        
        % Get a unique identifier for the target service collection. This
        % is used to determine whether re-processing of the target data is
        % required
        function uuid = getServiceInstanceIdentifier(this)     
            this.assertUsage();        
        end
                
        function concurrent = runsConcurrentlyWith(this, ~)
            this.assertUsage();
        end

        % Perform toolchain validation for SIL & PIL simulations to prevent
        % unsupported workflows
        function validateToolchainSupport(this, ~)
            this.assertUsage();
        end
        
        % Get the IDataTypeService associated with the connectivity target
        % services
        function service = getDataTypeService(this)
            this.assertUsage();
        end
        
        % Get the IRtIOStreamApplicationService associated with the connectivity target
        % services
        function service = getRtIOStreamApplicationService(this) 
            this.assertUsage();
        end        
        
        % Get the IBuildDependencyService associated with the connectivity target
        % services
        function service = getBuildDependencyService(this)    
            this.assertUsage();   
        end 
        
        % Get the IBuildDependencyService associated with the connectivity target
        % services
        function service = getProfilingService(this)     
            this.assertUsage();
        end        
        
        % Return true if there is an IBuildDependencyService associated
        function res = hasProfilingService(this)     
            this.assertUsage();
        end   
        
        function buildStrategy = getBuildStrategy(this, ~)
            this.assertUsage();
        end    

        function res = supportsDebugging(~)
            this.assertUsage();
        end
    end
    
    methods (Access=protected)
        
        function displayScalarObject(this)            
            this.assertUsage();
        end
    end
end

% LocalWords:  IData IRt
