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 + -
显示快捷键?