Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Blt_Tree(3)		    Blt	Library	Procedures		   Blt_Tree(3)

______________________________________________________________________________

NAME
       Blt_Tree	- Tree data object.

SYNOPSIS
       #include	<bltTree.h>

       struct Blt_Tree {
       Tcl_Alloc(size)

       Tcl_Free(ptr)

       char *
       Tcl_Realloc(ptr,	size)

ARGUMENTS
       int    size    (in)	Size in	bytes of the memory block to allocate.

       char   *ptr    (in)	Pointer	to memory block	to free	or realloc.
_________________________________________________________________

DESCRIPTION
       These  procedures provide a platform and	compiler independent interface
       for memory allocation.  Programs	that need  to  transfer	 ownership  of
       memory  blocks  between Tcl and other modules should use	these routines
       rather than the native malloc() and free() routines provided by	the  C
       run-time	library.

       Tcl_Alloc  returns a pointer to a block of at least size	bytes suitably
       aligned for any use.

       Tcl_Free	makes the space	referred to by ptr available for further allo-
       cation.

       Tcl_Realloc  changes  the  size	of the block pointed to	by ptr to size
       bytes and returns a pointer to the new block.  The contents will	be un-
       changed	up to the lesser of the	new and	old sizes.  The	returned loca-
       tion may	be different from ptr.

TREE OBJECT ROUTINES
       The following library routines allow you	to create and destroy tree ob-
       jects.	Each tree object has a name that uniquely identifies it.  Tree
       objects can also	be shared.  For	example, the tree and  hiertable  com-
       mands  may access the same tree data object.  Each client grabs a token
       associated with the tree.  When all tokens are released the  tree  data
       object is automatically destroyed.

       Blt_TreeCreate	   Create  a tree data object and optionally obtains a
			   token associated with it.

       Blt_TreeExists	   Indicates if	a tree by a given name exists.

       Blt_TreeGetToken	   Obtains a token for an existing tree	data object.

       Blt_TreeReleaseToken
			   Releases a token for	a tree data object.  The  tree
			   object  is deleted when all outstanding tokens have
			   been	released.

       Blt_TreeName	   Returns the name of the tree	object.

       Blt_TreeChangeRoot  Specifies a node as the new root to a tree.

TREENODE ROUTINES
       Tree objects initially contain only a root node.	You can	add or	delete
       nodes with the following	routines.

       Blt_TreeCreateNode  Creates  a new child	node for a given parent	in the
			   tree.

       Blt_TreeDeleteNode  Deletes a node and its children.

       Blt_TreeNodeId	   Returns the unique node identifier for a node.

       Blt_TreeGetNode	   Gets	a node based upon its identifier.

       Blt_TreeFindChild   Searches for	a child	node given by its label	 in  a
			   parent node.

       Blt_TreeNodeLabel   Returns the current label for a node.

       Blt_TreeRelabelNode Resets a node's label.

       Blt_TreeNodePath	   Returns the fullpath	to a node.

       Blt_TreeNodeDepth   Returns the depth of	the node.

       Blt_TreeNodeDegree  Returns the number of children for a	node.

       Blt_TreeIsLeaf	   Indicates if	a node has no children.

       Blt_TreeIsBefore	   Indicates  if  a  node  is  before  another node in
			   depth-first search order.

       Blt_TreeIsAncestor  Indicates if	a node is an ancestor or another.

       Blt_TreeSortNode	   Sorts the children of a node.

       Blt_TreeSize	   Returns the number of nodes in a node and  its  de-
			   scendants.

       Blt_TreeMoveNode

NODE NAVIGATION
       Each node can have zero or more children	nodes.	These routines let you
       navigate	the tree hierarchy.

       Blt_TreeNodeParent  Returns the parent node.

       Blt_TreeFirstChild  Returns the first child of a	parent node.

       Blt_TreeLastChild   Returns the last child of a parent node.

       Blt_TreeNextSibling Returns the next sibling node in the	parent's  list
			   of children.

       Blt_TreePrevSibling Returns  the	 previous sibling node in the parent's
			   list	of children.

       Blt_TreeRootNode	   Returns the root node of the	tree.

       Blt_TreeNextNode	   Returns the next node in depth-first	order.

       Blt_TreePrevNode	   Returns the previous	node in	depth-first order.

       Blt_TreeEndNode	   Returns the last node in the	tree as	determined  by
			   depth-first order.

       Blt_TreeApply	   Walks through a node	and all	it descendants,	apply-
			   ing a given callback	procedure.

       Blt_TreeApplyDFS	   Walks through a node	 and  all  it  descendants  in
			   depth-first search order, applying a	given callback
			   procedure.

       Blt_TreeApplyBFS	   Walks through a node	 and  all  it  descendants  in
			   breadth-first  search order,	applying a given call-
			   back	procedure.

NODE DATA VALUES
       Data values can be stored at any	node.  Values have by  both  a	string
       key  and	a Tcl_Obj value.  Data value keys do not have to be homogenous
       across all nodes	(i.e. nodes do not have	to  contain  the  same	keys).
       There is	also a special node array data type.

       Blt_TreeGetValue	   Gets	the node data value given by a key.

       Blt_TreeValueExists Indicates  if  a node data value given by a key ex-
			   ists.

       Blt_TreeSetValue	   Sets	a node's value of a key.

       Blt_TreeUnsetValue  Remove the node data	value and key.

       Blt_TreeGetArrayValue
			   Gets	the node data array value given	by a  key  and
			   an array index.

       Blt_TreeSetArrayValue
			   Sets	 the  node data	array value given by a key and
			   an array index.

       Blt_TreeUnsetArrayValue
			   Remove the node data	array value.

       Blt_TreeArrayValueExists
			   Determines if an array element by a given index ex-
			   ists.

       Blt_TreeFirstKey	   Returns the key of the first	value in the node.

       Blt_TreeNextKey	   Returns the key of the next value in	the node.

       Blt_TreePrivateValue
			   Lock	 the  value  to	current	client,	making it pri-
			   vate.

       Blt_TreePublicValue Unlock the value so that all	clients	can access it.

       Blt_TreeGetKey

NODE TRACES
       Blt_TreeCreateTrace Sets	up a trace callback to	be  invoked  when  the
			   node	value is read, set, or unset.

       Blt_TreeDeleteTrace Deletes an existing trace.

NODE EVENTS
       Blt_TreeCreateEventHandler
			   Sets	 up a callback to be invoked when events (cre-
			   ate,	delete,	relabel, etc) take place on a node.

       Blt_TreeDeleteEventHandler
			   Deletes an existing node callback.

KEYWORDS
       alloc, allocation, free,	malloc,	memory,	realloc

BLT				      2.5			   Blt_Tree(3)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | TREE OBJECT ROUTINES | TREENODE ROUTINES | NODE NAVIGATION | NODE DATA VALUES | NODE TRACES | NODE EVENTS | KEYWORDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Blt_Tree&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help