Geant4 Cross Reference |
1 /* 2 # <<BEGIN-copyright>> 3 # <<END-copyright>> 4 */ 5 #include <string.h> 6 7 #include "xDataTOM_private.h" 8 9 #if defined __cplusplus 10 namespace GIDI { 11 using namespace GIDI; 12 #endif 13 14 char const *xDataTOM_W_XYs_ID = "W_XYs"; 15 16 /* 17 ************************************************************ 18 */ 19 xDataTOM_W_XYs *xDataTOM_W_XYs_new( statusMessageReporting *smr, int index, int length, double value, xDataTOM_axes *axes, int axesOffset ) { 20 21 xDataTOM_W_XYs *W_XYs; 22 23 if( ( W_XYs = (xDataTOM_W_XYs *) smr_malloc2( smr, sizeof( xDataTOM_W_XYs ), 0, "W_XYs" ) ) == NULL ) return( NULL ); 24 if( xDataTOM_W_XYs_initialize( smr, W_XYs, index, length, value, axes, axesOffset ) != 0 ) smr_freeMemory( (void **) &W_XYs ); 25 return( W_XYs ); 26 } 27 /* 28 ************************************************************ 29 */ 30 int xDataTOM_W_XYs_initialize( statusMessageReporting *smr, xDataTOM_W_XYs *W_XYs, int index, int length, double value, xDataTOM_axes *axes, 31 int axesOffset ) { 32 33 W_XYs->XYs = NULL; 34 W_XYs->index = index; 35 W_XYs->length = length; 36 W_XYs->value = value; 37 if( ( W_XYs->XYs = (xDataTOM_XYs *) smr_malloc2( smr, length * sizeof( xDataTOM_XYs ), 1, "W_XYs->XYs" ) ) == NULL ) return( 1 ); 38 if( xDataTOM_subAxes_initialize( smr, &(W_XYs->subAxes), xDataTOM_subAxesType_proxy, axesOffset, axes, NULL ) != 0 ) { 39 smr_freeMemory( (void **) &(W_XYs->XYs) ); 40 return( 1 ); 41 } 42 43 return( 0 ); 44 } 45 /* 46 ************************************************************ 47 */ 48 xDataTOM_W_XYs *xDataTOM_W_XYs_free( xDataTOM_W_XYs *W_XYs ) { 49 50 if( W_XYs == NULL ) return( NULL ); 51 xDataTOM_W_XYs_release( W_XYs ); 52 smr_freeMemory( (void **) &W_XYs ); 53 return( (xDataTOM_W_XYs *) NULL ); 54 } 55 /* 56 ************************************************************ 57 */ 58 int xDataTOM_W_XYs_freeFrom_xDataInfo( xDataTOM_xDataInfo *xDI ) { 59 60 if( xDI == NULL ) return( 0 ); 61 if( strcmp( xDataTOM_W_XYs_ID, xDI->ID ) != 0 ) return( 1 ); 62 xDataTOM_W_XYs_free( (xDataTOM_W_XYs *) xDI->data ); 63 return( 0 ); 64 } 65 /* 66 ************************************************************ 67 */ 68 int xDataTOM_W_XYs_release( xDataTOM_W_XYs *W_XYs ) { 69 70 int i; 71 72 xDataTOM_subAxes_release( &(W_XYs->subAxes) ); 73 for( i = 0; i < W_XYs->length; i++ ) xDataTOM_XYs_release( &(W_XYs->XYs[i]) ); 74 W_XYs->length = 0; 75 smr_freeMemory( (void **) &(W_XYs->XYs) ); 76 77 return( 0 ); 78 } 79 80 #if defined __cplusplus 81 } 82 #endif 83