Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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
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 */
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 */
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 
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
xDataTOM_W_XYs * xDataTOM_W_XYs_free(xDataTOM_W_XYs *W_XYs)
int xDataTOM_XYs_release(xDataTOM_XYs *XYs)
Definition: xDataTOM_XYs.cc:31
int xDataTOM_W_XYs_freeFrom_xDataInfo(xDataTOM_xDataInfo *xDI)
xDataTOM_XYs * XYs
Definition: xDataTOM.h:97
xDataTOM_subAxes subAxes
Definition: xDataTOM.h:96
const char * ID
Definition: xDataTOM.h:151
int xDataTOM_subAxes_release(xDataTOM_subAxes *subAxes)
xDataTOM_W_XYs * xDataTOM_W_XYs_new(statusMessageReporting *smr, int index, int length, double value, xDataTOM_axes *axes, int axesOffset)
int xDataTOM_W_XYs_release(xDataTOM_W_XYs *W_XYs)
int xDataTOM_subAxes_initialize(statusMessageReporting *smr, xDataTOM_subAxes *subAxes, enum xDataTOM_subAxesType type, int offset, xDataTOM_axes *axes, xDataTOM_interpolation *interpolation)
const XML_Char int const XML_Char * value
Definition: expat.h:331
int xDataTOM_W_XYs_initialize(statusMessageReporting *smr, xDataTOM_W_XYs *W_XYs, int index, int length, double value, xDataTOM_axes *axes, int axesOffset)
#define smr_malloc2(smr, size, zero, forItem)
double value
Definition: xDataTOM.h:95
void * smr_freeMemory(void **p)
char const * xDataTOM_W_XYs_ID