Difference between pages "r6.0.0:Lfds600 stack clear" and "r6.0.0:Lfds600 stack delete"

From liblfds.org
(Difference between pages)
Jump to navigation Jump to search
m (1 revision imported)
 
m (1 revision imported)
 
Line 1: Line 1:
{{DISPLAYTITLE:r6.0.0:lfds600_stack_clear}}
{{DISPLAYTITLE:r6.0.0:lfds600_stack_delete}}
==Source Files==
==Source Files==
  /liblfds600/src/lfds600_stack/lfds600_stack_delete.c
  /liblfds600/src/lfds600_stack/lfds600_stack_delete.c
Line 5: Line 5:


==Prototype==
==Prototype==
  void lfds600_stack_clear( struct lfds600_stack_state *ss,
  void lfds600_stack_delete( struct lfds600_stack_state *ss,
                        void (*user_data_clear_function)(void *user_data, void *user_state),
                          void (*user_data_delete_function)(void *user_data, void *user_state),
                        void *user_state );
                          void *user_state );


==Parameters==
==Parameters==
Line 13: Line 13:
: A stack state as allocated by ''[[r6.0.0:lfds600_stack_new|lfds600_stack_new]]''.
: A stack state as allocated by ''[[r6.0.0:lfds600_stack_new|lfds600_stack_new]]''.


''void (*user_data_init_function)(void *user_data, void *user_state)''
''void (*user_data_delete_function)(void *user_data, void *user_state)''
: A callback function, which can be NULL.  This function is called with the user data void pointer from each element before that element is popped, giving the user an opportunity to delete any allocated state.  
: A callback function, which can be NULL.  This function is called with the user data void pointer from each element before that element is deleted, giving the user an opportunity to delete any allocated state.


''void *user_state''
''void *user_state''
: This pointer is passed into the ''user_data_init_function'' as its second argument, enabling the caller to pass state into the callback function.
: This pointer is passed into the ''user_data_delete_function'' as its second argument, enabling the caller to pass state into the callback function.


==Return Value==
==Return Value==
Line 23: Line 23:


==Notes==
==Notes==
This function empties the stack, popping every element.  Each element, after being popped, is passed to ''user_data_clear_function''.
This function deletes the stack.  If there are any elements present in the stack at the time of deletion, the function loops, popping an element and passing its user data void pointer to user_data_delete_function, until the stack is empty.


==See Also==
==See Also==
* [[r6.0.0:lfds600_stack|lfds600_stack]]
* [[r6.0.0:lfds600_stack|lfds600_stack]]
* [[r6.0.0:lfds600_stack_new|lfds600_stack_new]]

Latest revision as of 14:07, 4 January 2015

Source Files

/liblfds600/src/lfds600_stack/lfds600_stack_delete.c
/liblfds600/inc/liblfds600.h

Prototype

void lfds600_stack_delete( struct lfds600_stack_state *ss,
                         void (*user_data_delete_function)(void *user_data, void *user_state),
                         void *user_state );

Parameters

struct lfds600_stack_state *ss

A stack state as allocated by lfds600_stack_new.

void (*user_data_delete_function)(void *user_data, void *user_state)

A callback function, which can be NULL. This function is called with the user data void pointer from each element before that element is deleted, giving the user an opportunity to delete any allocated state.

void *user_state

This pointer is passed into the user_data_delete_function as its second argument, enabling the caller to pass state into the callback function.

Return Value

No return value.

Notes

This function deletes the stack. If there are any elements present in the stack at the time of deletion, the function loops, popping an element and passing its user data void pointer to user_data_delete_function, until the stack is empty.

See Also