diff options
author | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-12-30 11:20:13 +0000 |
---|---|---|
committer | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-12-30 11:20:13 +0000 |
commit | eadc837224f44048a3955a345edfd0a0b4a2cf09 (patch) | |
tree | ddb2a152aa3ed8a0869bff9cd9d687b692ed7996 /doc/linkedlists.README | |
parent | 5f662aa8c7e4fe674f659364a4fbf631889542e8 (diff) |
- Reformatting the app_sms help text from html to txt to comply with the rest of the documentation
- Renaming help files to README.<name>
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7674 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'doc/linkedlists.README')
-rw-r--r-- | doc/linkedlists.README | 98 |
1 files changed, 0 insertions, 98 deletions
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 <asterisk/linkedlists.h> - -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"); -} |