buffer.m

来自「Buffer is an object oriented buffer impl」· M 代码 · 共 57 行

M
57
字号
classdef  buffer < handle
    % buffer is the class definition for buffer classes. Buffer is used by
  
    % ==================================================
    % DATA MEMBERS
    % ==================================================
     properties (SetAccess='public')
         buff
         wPtr
         bufferSize
     end
     
    % ==================================================
    % PRIVATE METHODS
    % ==================================================
    methods (Access='private')
    
    end    
    % ==================================================
    % PUBLIC METHODS
    % ==================================================
    methods
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%% Constructor  %%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        function  b = buffer(bufferSize)
            
            b.buff = zeros(1,bufferSize);
            b.wPtr = 1;
            b.bufferSize = bufferSize;
            
        end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%% write      %%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        function write(b,inData)
            if (b.wPtr-1 + length(inData) > b.bufferSize)
                error('Buffer size is exceeded!');
            else
                b.buff(b.wPtr:b.wPtr + length(inData)-1) = inData;
                b.wPtr = b.wPtr + length(inData);
            end
        end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%% read      %%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        function dataOut= read(b, nRqst)
            dataOut = b.buff(1:nRqst);
            b.buff(1:b.bufferSize-nRqst) =  b.buff(nRqst+1:end);
            b.wPtr = b.wPtr - nRqst;
            
        end
        function nb = numOfElements(b)
            nb = (b.wPtr-1);
        end
    end    
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?