Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
xDataTOM_W_XYs.cc
Go to the documentation of this file.
1/*
2# <<BEGIN-copyright>>
3# <<END-copyright>>
4*/
5#include <string.h>
6
7#include "xDataTOM_private.h"
8
9#if defined __cplusplus
10namespace GIDI {
11using namespace GIDI;
12#endif
13
14char const *xDataTOM_W_XYs_ID = "W_XYs";
15
16/*
17************************************************************
18*/
19xDataTOM_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*/
30int 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*/
49
50 if( W_XYs == NULL ) return( NULL );
52 smr_freeMemory( (void **) &W_XYs );
53 return( (xDataTOM_W_XYs *) NULL );
54}
55/*
56************************************************************
57*/
59
60 if( xDI == NULL ) return( 0 );
61 if( strcmp( xDataTOM_W_XYs_ID, xDI->ID ) != 0 ) return( 1 );
63 return( 0 );
64}
65/*
66************************************************************
67*/
69
70 int i;
71
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
void * smr_freeMemory(void **p)
#define smr_malloc2(smr, size, zero, forItem)
double value
Definition: xDataTOM.h:95
xDataTOM_subAxes subAxes
Definition: xDataTOM.h:96
xDataTOM_XYs * XYs
Definition: xDataTOM.h:97
const char * ID
Definition: xDataTOM.h:151
int xDataTOM_subAxes_release(xDataTOM_subAxes *subAxes)
@ xDataTOM_subAxesType_proxy
Definition: xDataTOM.h:24
int xDataTOM_W_XYs_release(xDataTOM_W_XYs *W_XYs)
xDataTOM_W_XYs * xDataTOM_W_XYs_free(xDataTOM_W_XYs *W_XYs)
xDataTOM_W_XYs * xDataTOM_W_XYs_new(statusMessageReporting *smr, int index, int length, double value, xDataTOM_axes *axes, int axesOffset)
int xDataTOM_subAxes_initialize(statusMessageReporting *smr, xDataTOM_subAxes *subAxes, enum xDataTOM_subAxesType type, int offset, xDataTOM_axes *axes, xDataTOM_interpolation *interpolation)
int xDataTOM_W_XYs_freeFrom_xDataInfo(xDataTOM_xDataInfo *xDI)
int xDataTOM_W_XYs_initialize(statusMessageReporting *smr, xDataTOM_W_XYs *W_XYs, int index, int length, double value, xDataTOM_axes *axes, int axesOffset)
int xDataTOM_XYs_release(xDataTOM_XYs *XYs)
Definition: xDataTOM_XYs.cc:31
char const * xDataTOM_W_XYs_ID