tst(3)


NAME

   tst - ternary search trie functions

SYNOPSIS

       #include <inn/tst.h>

       struct tst;

       struct tst *tst_init(int node_line_width);

       void tst_cleanup(struct tst *tst);

       int tst_insert(struct tst *tst, const unsigned char *key, void *data, int option, void **exist_ptr);

       void *tst_search(struct tst *tst, const unsigned char *key);

       void *tst_delete(struct tst *tst, const unsigned char *key);

DESCRIPTION

   tst_init allocates memory for members of struct tst, and allocates the
   first node_line_width nodes. A NULL pointer is returned by tst_init if
   any part of the memory allocation fails. On success, a pointer to a
   struct tst is returned.

   The value for node_line_width must be chosen very carefully. One node
   is required for every character in the tree. If you choose a value that
   is too small, your application will spend too much time calling
   malloc(3) and your node space will be too spread out. Too large a value
   is just a waste of space.

   tst_cleanup frees all memory allocated to nodes, internal structures,
   as well as tst itself.

   tst_insert inserts the string key into the tree. Behavior when a
   duplicate key is inserted is controlled by option. If key is already in
   the tree then TST_DUPLICATE_KEY is returned, and the data pointer for
   the existing key is placed in exist_ptr.  If option is set to
   TST_REPLACE then the existing data pointer for the existing key is
   replaced by data.  Note that the old data pointer will still be placed
   in exist_ptr.

   If a duplicate key is encountered and option is not set to TST_REPLACE
   then TST_DUPLICATE_KEY is returned. If key is zero length then
   TST_NULL_KEY is returned. A successful insert or replace returns
   TST_OK. A return value of TST_ERROR indicates that a memory allocation
   error occurred while trying to grow the node free.

   Note that the data argument must never be NULL. If it is, then calls to
   tst_search will fail for a key that exists because the data value was
   set to NULL, which is what tst_search returns. If you just want a
   simple existence tree, use the tst pointer as the data pointer.

   tst_search finds the string key in the tree if it exists and returns
   the data pointer associated with that key.

   If key is not found then NULL is returned, otherwise the data pointer
   associated with key is returned.

   tst_delete deletes the string key from the tree if it exists and
   returns the data pointer assocaited with that key.

   If key is not found then NULL is returned, otherwise the data pointer
   associated with key is returned.

HISTORY

   Converted to POD from Peter A. Friend's ternary search trie
   documentation by Alex Kiernan <alex.kiernan@thus.net> for
   InterNetNews 2.4.0.

   $Id: tst.pod 9073 2010-05-31 19:00:23Z iulius $





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.