classdef (Abstract) IProfilingService < handle
%IPROFILINGSERVICE Service interface to allow PIL and other connectivity
%workflows to set profiling information for the target platform.

%   Copyright 2020-2021 The MathWorks, Inc.
    
    methods (Abstract)
        
        % Retrieve timer object based of type
        % coder.profile.private.TimerWrap.
        timer = getTimer(this);
        
        % Retrieve whether overhead filtering has been activated.
        isActive = isOverheadFilteringActive(this);
        
        % Retrieve whether overhead benchmark has been executed.
        isExecuted = isOverheadBenchmarkExecuted(this);
        
        % Retrieve number of iterations for the benchmark.
        steps = getOverheadBenchmarkSteps(this);
        
        % Retrieve hand-coded average overheads.
        [tsk, fcn, frz] = getOverheads(this);
        
        stackDriver = getStackDriver(this);
    end
    
end
