classdef (Abstract) XCPTransport < target.ExtensibleObject

    properties (Dependent)
        MaxCTOSize (1, 1) uint8
        MaxDTOSize (1, 1) uint16
        MaxODTEntrySizeDAQ (1, 1) uint8
    end

    properties (Dependent, Hidden)
        Interface (1, 1) string
        Mex (1, 1) string
    end

    methods

        function value = get.Interface(this)
            value = this.InnerInstance.Interface;
        end

        function value = get.MaxCTOSize(this)
            value = this.InnerInstance.MaxCTOSize;
        end

        function set.MaxCTOSize(this, value)
            this.InnerInstance.MaxCTOSize = value;
        end

        function value = get.MaxDTOSize(this)
            value = this.InnerInstance.MaxDTOSize;
        end

        function set.MaxDTOSize(this, value)
            this.InnerInstance.MaxDTOSize = value;
        end

        function value = get.MaxODTEntrySizeDAQ(this)
            value = this.InnerInstance.MaxODTEntrySizeDAQ;
        end

        function set.MaxODTEntrySizeDAQ(this, value)
            this.InnerInstance.MaxODTEntrySizeDAQ = value;
        end

        function value = get.Mex(this)
            value = this.InnerInstance.Mex;
        end
    end

    methods (Hidden)

        function varargout = getCommunicationInterfaceChannel(this)
            [innerThis] = targetframework.internal.user.commandline.matlab.Helpers.unwrapValues(this);
            [varargout{1:nargout}] = getCommunicationInterfaceChannel(innerThis);
            [varargout{:}] = targetframework.internal.user.commandline.matlab.Helpers.wrapValues(varargout{:});
        end

        function varargout = getTransport(this)
            [innerThis] = targetframework.internal.user.commandline.matlab.Helpers.unwrapValues(this);
            [varargout{1:nargout}] = getTransport(innerThis);
            [varargout{:}] = targetframework.internal.user.commandline.matlab.Helpers.wrapValues(varargout{:});
        end
    end
end

%   Copyright 2021-2023 The MathWorks, Inc.