/**********************************************************************
* dynamic_array_test.c September 2000
* Horms horms@verge.net.au
*
* vanessa_adt
* Library of Abstract Data Types
* Copyright (C) 1999-2003 Horms
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307 USA
*
**********************************************************************/
#include <vanessa_adt.h>
#include <vanessa_logger.h>
/**********************************************************************
* Muriel the main function
**********************************************************************/
int main(int argc, char **argv)
{
vanessa_logger_t *vl;
vanessa_dynamic_array_t *a;
char *str;
int i;
/*
* Open logger to filehandle stderr
*/
vl = vanessa_logger_openlog_filehandle(stderr,
"dynamic_array_test",
LOG_DEBUG, 0);
if (vl == NULL) {
fprintf(stderr,
"Error: vanessa_logger_openlog_filehandle\n");
fprintf(stderr,
"Fatal Error registering logger. Exiting.\n");
exit(-1);
}
/*
* Set this as the logger for this programme
*/
vanessa_logger_set(vl);
/*
* Create a dynamic array
*/
printf("Creating Dynamic Array\n");
if ((a = vanessa_dynamic_array_create(0,
VANESSA_DESTROY_INT,
VANESSA_DUPLICATE_INT,
VANESSA_DISPLAY_INT,
VANESSA_LENGTH_INT)) ==
NULL) {
vanessa_logger_log(vl, LOG_DEBUG,
"main: vanessa_dynamic_array_create");
vanessa_logger_log(vl, LOG_ERR,
"Fatal error creating dynamic array. Exiting.");
exit(-1);
}
/*
* Insert some elements
*/
printf("Inserting Elements into Dynamic Array\n");
for (i = 0; i < 8; i++) {
if ((vanessa_dynamic_array_add_element(a, &i)) ==
NULL) {
vanessa_logger_log(vl, LOG_ERR,
"main: vanessa_dynamic_array_add_element");
vanessa_logger_log(vl, LOG_ERR,
"Fatal error creating adding element. Exiting.");
exit(-1);
}
}
/*
* Display the contents
*/
printf("Displaying contents of Dynamic Array\n");
if ((str = vanessa_dynamic_array_display(a, ',')) == NULL) {
vanessa_logger_log(vl, LOG_DEBUG,
"main: vanessa_dynamic_array_display");
vanessa_logger_log(vl, LOG_ERR,
"Fatal error displaying dynamic array. Exiting.");
exit(-1);
}
printf("%s\n", str);
free(str);
/*
* Reverse the dynamic array
*/
printf("Reversing the contents of Dynamic Array\n");
vanessa_dynamic_array_reverse(a);
/*
* Display the contents again
*/
printf("Displaying contents of Dynamic Array\n");
if ((str = vanessa_dynamic_array_display(a, ',')) == NULL) {
vanessa_logger_log(vl, LOG_DEBUG,
"main: vanessa_dynamic_array_display 2");
vanessa_logger_log(vl, LOG_ERR,
"Fatal error displaying dynamic array. Exiting.");
exit(-1);
}
printf("%s\n", str);
free(str);
/*
* Clean Up
*/
printf("Cleaning Up\n");
vanessa_dynamic_array_destroy(a);
vanessa_adt_logger_unset();
vanessa_logger_closelog(vl);
exit(0);
}
syntax highlighted by Code2HTML, v. 0.9.1