classdef (Abstract) IDebuggerAutomationRtIOStreamApplicationService < coder.connectivity.targetservices.IRtIOStreamApplicationService
%IDEBUGGERAUTOMATIONRTIOSTREAMAPPLICATIONSERVICE Service interface to allow PIL and other 
% connectivity workflows to run executables on the target platform that use
% debugger automation to synchronize data.

%   Copyright 2020-2023 The MathWorks, Inc.
        
    methods (Abstract)
               
        % Get the read buffer variable used by the debugger rtiostream
        getReadBufferVariable(this);
        
        % Get the write buffer variable used by the debugger rtiostream
        getWriteBufferVariable(this);
        
        % Get the read size available variable used by the debugger rtiostream
        getReadSizeAvailableVariable(this);
        
        % Get the write breakpoint used by the debugger rtiostream to stop
        % execution and write to the target.
        getWriteBreakpoint(this);
        
        % Get the read breakpoint used by the debugger rtiostream to stop
        % execution and read from the target.
        getReadBreakpoint(this);        
        
        % Continue execution on the target if stopped.
        continueExecution(this);        
        
        % Query if the target execution has stopped at the specified
        % breakpoint.
        atBreakpoint = stoppedAtBreakpoint(this, bp);        
        
        % Write to the specified variable
        sizeWritten = writeToMemoryStream(this, variableName, byteStream);        
        
        % Read from the specified variable
        byteStream = readFromMemoryStream(this, variableName, sizeToRead);

        % Get the polling wait time (in seconds)
        getBreakpointPollingWaitTime(this);

        % Get the polling interval (in seconds)
        getBreakpointPollingInterval(this);
    end
end

