From 1dc8844db101502a075774712bd0ce693c2796c4 Mon Sep 17 00:00:00 2001 From: Olle Johansson Date: Fri, 30 Dec 2005 11:20:13 +0000 Subject: - Reformatting the app_sms help text from html to txt to comply with the rest of the documentation - Renaming help files to README. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7674 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- doc/linkedlists.README | 98 -------------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 doc/linkedlists.README (limited to 'doc/linkedlists.README') diff --git a/doc/linkedlists.README b/doc/linkedlists.README deleted file mode 100644 index 340933548..000000000 --- a/doc/linkedlists.README +++ /dev/null @@ -1,98 +0,0 @@ -As of 2004-12-23, this documentation is no longer maintained. The doxygen documentation -generated from linkedlists.h should be referred to in its place, as it is more complete -and better maintained. - -2nd version, implemented as macros. - - include - -AST_LIST_ENTRY declares pointers inside the object structure : - - struct ast_var_t { - char *name; - char *value; - AST_LIST_ENTRY(ast_var_t) listpointers; - }; - -AST_LIST_HEAD declares a head structure, which is initialized -to AST_LIST_HEAD_NULL : - - AST_LIST_HEAD(head, ast_var_t) head - -Next, we declare a pointer to this structure : - - struct headtype *headp = head; - -AST_LIST_INIT initializes the head pointer to a null value - - AST_LIST_INIT(headp); - -AST_LIST_INSERT_HEAD inserts an element to the head of the list : - - struct ast_var_t *node; - - node=malloc(sizeof(struct ast_var_t)); - (...we fill data in struct....) - data->name=malloc(100); - strcpy(data->name,"lalalalaa"); - etc etc - - (then we insert the node in the head of the list :) - - AST_LIST_INSERT_HEAD(headp,node,listpointers); - -AST_LIST_INSERT_HEAD_AFTER inserts an element after another : - - struct ast_var_t *node1; - ... - AST_LIST_INSERT_AFTER(node,node1,listpointers); - -AST_LIST_REMOVE removes an arbitrary element from the head: - - AST_LIST_REMOVE(headp,node1,ast_var_t,listpointers); - -AST_LIST_REMOVE_HEAD removes the entry at the head of the list and -returns a pointer to the removed entry: - - AST_LIST_REMOVE_HEAD(headp,node,listpointers); - -AST_LIST_FIRST returns a pointer to the first element of the list; - - struct ast_var_t *firstnode; - firstnode=AST_LIST_FIRST(headp); - -AST_LIST_NEXT returns a pointer to the next element : - - struct ast_var_t *nextnode; - nextnode=AST_LIST_NEXT(firstnode,listpointers); - -AST_LIST_TRAVERSE traverses all elements of the list : - - struct ast_var_t *node; - - AST_LIST_TRAVERSE(headp,node,listpointers) { - printf("%s\n",node->name); - } - -AST_LIST_EMPTY evaluates to a true condition if there are no elements on -the list. - -To completely delete a list : - - struct ast_var_t *vardata; - - while (!AST_LIST_EMPTY(headp)) { /* List Deletion. */ - vardata = AST_LIST_REMOVE_HEAD(head, ast_var_t, listpointers); - free(vardata->name); - free(vardata->value); - } - -AST_LIST_LOCK returns true if it can lock the list, AST_LIST_UNLOCK unlocks -the list : - -if (AST_LIST_LOCK(headp)) { - ...do all list operations here... - AST_LIST_UNLOCK(headp); -} else { - ast_log(LOG_WARNING,"List locked bla bla bla\n"); -} -- cgit v1.2.3