blob: d764a16fc8f05b99b3327130d442c311ab4c3949 [file] [log] [blame]
/*
* Name: createIndexNode
* Input: integer level
* Output: new index node
* Return: IndexNode pointer, or
* NULL (if allocation failed)
* Description: Routine creates new node using system allocation routine,
* malloc. Returns pointer to new node or NULL if allocation
* failed. The level of the new node is input and stored in
* new node and the list of index entries is specified to be
* empty.
* Calls: errorMessage()
* System: malloc()
* Author: M.L.Rivas
*
* Revision History:
* Date Name Revision
* ------- --------------- ------------------------------
* 24May99 Matthew Rivas Created
*
* Copyright 1999, Atlantic Aerospace Electronics Corp.
*/
#include <stdlib.h> /* for malloc() and NULL definitions */
#include "dataManagement.h" /* for primitive type definitions */
#include "errorMessage.h" /* for errorMessage() definition */
#include "index.h" /* for IndexNode definition */
IndexNode * createIndexNode( Int level ) /* level of new node */
{ /* beginning of createIndexNode() */
IndexNode * node; /* node to create */
static Char name[] = "createIndexNode";
node = NULL;
/*
* Check for invalid node level
*/
if ( level < LEAF ) {
errorMessage( "invalid level specified", REPLACE );
errorMessage( name, PREPEND );
node = NULL;
} /* end of if ( level < LEAF ) */
/*
* Create new node with specified level
*/
else {
/*
* Allocate memory for new node
*/
node = (IndexNode *)malloc( sizeof( IndexNode ) );
if ( node == NULL ) {
errorMessage( "allocation failure", REPLACE );
errorMessage( name, PREPEND );
} /* end of if ( node == NULL ) */
else {
node->level = level;
} /* end of else */
} /* end of else */
/*
* Set entries of new node to empty list
*/
node->entries = NULL;
return ( node );
} /* end of createIndexNode */