Home > vbmeg > functions > common > utility > stack > vb_stack_new.m

vb_stack_new

PURPOSE ^

create stack object

SYNOPSIS ^

function [obj] = vb_stack_new(stack_size, stack_type)

DESCRIPTION ^

 create stack object
 [USAGE]
    [obj] = vb_stack_new([stack_size][,stack_type]);
 [IN]
    stack_size : stack buffer size.(default: unlimit)
    stack_type : 'M', 'm' : stack buffers on memory.(default)
                 'F', 'f' : stack buffers on MATLAB-tempfile.
                            MATLAB-tempfile is created by 
                            MATLAB command 'temp_name'

 [OUT]
    obj : stack object

 Examples:

    data = 'test_data';

    % create stack(stack size=10, Memory stack)
    stk = vb_stack_new(10, 'M'); 

    % push
    stk = vb_stack_push(stk, data);

    % pop
    [stk, pop_data] = vb_stack_pop(stk);

    % destroy stack(Don't forget)
    vb_stack_delete(stk);

 Caution:
    When you push data exceeding the stack_size, 
    the oldest data is deleted.

 Copyright (C) 2011, ATR All Rights Reserved.
 License : New BSD License(see VBMEG_LICENSE.txt)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [obj] = vb_stack_new(stack_size, stack_type)
0002 % create stack object
0003 % [USAGE]
0004 %    [obj] = vb_stack_new([stack_size][,stack_type]);
0005 % [IN]
0006 %    stack_size : stack buffer size.(default: unlimit)
0007 %    stack_type : 'M', 'm' : stack buffers on memory.(default)
0008 %                 'F', 'f' : stack buffers on MATLAB-tempfile.
0009 %                            MATLAB-tempfile is created by
0010 %                            MATLAB command 'temp_name'
0011 %
0012 % [OUT]
0013 %    obj : stack object
0014 %
0015 % Examples:
0016 %
0017 %    data = 'test_data';
0018 %
0019 %    % create stack(stack size=10, Memory stack)
0020 %    stk = vb_stack_new(10, 'M');
0021 %
0022 %    % push
0023 %    stk = vb_stack_push(stk, data);
0024 %
0025 %    % pop
0026 %    [stk, pop_data] = vb_stack_pop(stk);
0027 %
0028 %    % destroy stack(Don't forget)
0029 %    vb_stack_delete(stk);
0030 %
0031 % Caution:
0032 %    When you push data exceeding the stack_size,
0033 %    the oldest data is deleted.
0034 %
0035 % Copyright (C) 2011, ATR All Rights Reserved.
0036 % License : New BSD License(see VBMEG_LICENSE.txt)
0037 
0038 
0039 %
0040 % --- Previous check
0041 %
0042 if ~exist('stack_size', 'var')
0043     stack_size = inf;
0044 end
0045 if ~exist('stack_type', 'var')
0046     stack_type = 'm';
0047 end
0048 
0049 %
0050 % --- Main Procedure
0051 %
0052 obj = struct;
0053 obj.class_type = 'stack';
0054 obj.stack_size = stack_size;
0055 
0056 % create concrete object
0057 switch(lower(stack_type))
0058     case 'm'
0059         obj = vb_m_stack_new(obj);
0060     case 'f'
0061         obj = vb_f_stack_new(obj);
0062     otherwise
0063         error('Specified stack_type is invalid.');
0064 end
0065 
0066 %
0067 % --- After check
0068 %
0069 if nargout ~= 1
0070     error('function caller should receive obj.');
0071 end

Generated on Mon 22-May-2023 06:53:56 by m2html © 2005