/*  basics.C  */

#include "../DV.h"

/*--------------------------------------------------------------------*/
/*
   -----------------------
   constructor method

   created -- 95oct06, cca
   -----------------------
*/
DV *
DV_new ( 
   void 
) {
DV   *dv ;

ALLOCATE(dv, struct _DV, 1) ;

DV_setDefaultFields(dv) ;

return(dv) ; }
/*--------------------------------------------------------------------*/
/*
   -----------------------
   set the default fields

   created -- 95oct06, cca
   -----------------------
*/
void
DV_setDefaultFields ( 
   DV   *dv
) {
if ( dv == NULL ) {
   fprintf(stderr, "\n fatal error in DV_setDefaultFields(%p)"
           "\n bad input\n", dv) ;
   exit(-1) ;
}
dv->size    =   0  ;
dv->maxsize =   0  ;
dv->owned   =   0  ;
dv->vec     = NULL ;

return ; }

/*--------------------------------------------------------------------*/
/*
   -----------------------
   clear the data fields

   created -- 95oct06, cca
   -----------------------
*/
void
DV_clearData ( 
   DV   *dv
) {
if ( dv == NULL ) {
   fprintf(stderr, "\n fatal error in DV_clearData(%p)"
           "\n bad input\n", dv) ;
   exit(-1) ;
}
if ( dv->vec != NULL && dv->owned == 1 ) {
   DVfree(dv->vec) ;
}
DV_setDefaultFields(dv) ;

return ; }

/*--------------------------------------------------------------------*/
/*
   -----------------------
   destructor

   created -- 95oct06, cca
   -----------------------
*/
void
DV_free ( 
   DV   *dv
) {
if ( dv == NULL ) {
   fprintf(stderr, "\n fatal error in DV_free(%p)"
           "\n bad input\n", dv) ;
   exit(-1) ;
}
DV_clearData(dv) ;
FREE(dv) ;

return ; }

/*--------------------------------------------------------------------*/


syntax highlighted by Code2HTML, v. 0.9.1