ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
xDataTOM_W_XYs.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file xDataTOM_W_XYs.cc
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 */
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