Newer
Older

jacques.grelet_ird.fr
committed
function self = push(self, data)

jacques.grelet_ird.fr
committed
%PUT Put data in the queue
% queue = put(queue,data)
%
% $Id$

jacques.grelet_ird.fr
committed
% if data isempty, no action
% --------------------------

jacques.grelet_ird.fr
committed
if isempty(data)
return
end

jacques.grelet_ird.fr
committed
% if new entrie is equal to last entry, no action
% use short circuit operator, second expression (isequal) isn't evaluate
% if first expression (isempty) is true
% -----------------------------------------------
if isempty(self.data) || ~isequal(data, self.data{end})

jacques.grelet_ird.fr
committed

jacques.grelet_ird.fr
committed
% set internal queue structure
% ----------------------------
self.index = self.index+1;
%self.lifo(end+1,:) = data;
self.data{end+1} = data;
% if lifo not empty, pop dosn't follow wtih get
% ---------------------------------------------
if ~isempty(self.lifo)
self.lifo = [];
end
else
return
end