Geant4-11
Functions
xDataTOM_importXML_W_XYs.cc File Reference
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>
#include "xDataTOM_importXML_private.h"

Go to the source code of this file.

Functions

static int xDataXML_W_XYs_XYsToTOM (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_XYs *XYs, xDataTOM_axes *axes, int axesOffset)
 
int xDataXML_W_XYsDataToTOM (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_W_XYs *W_XYs, int index, double value, xDataTOM_axes *axes, int axesOffset)
 
int xDataXML_W_XYsToTOM (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_element *TE)
 

Function Documentation

◆ xDataXML_W_XYs_XYsToTOM()

static int xDataXML_W_XYs_XYsToTOM ( statusMessageReporting smr,
xDataXML_element XE,
xDataTOM_XYs XYs,
xDataTOM_axes axes,
int  axesOffset 
)
static

Definition at line 73 of file xDataTOM_importXML_W_XYs.cc.

74 {
75
76 int index, length;
77 double accuracy, value;
78
79 if( xDataXML_convertAttributeTo_xDataTOM_Int( smr, XE, "index", &index, 1 ) != 0 ) return( 1 );
80 if( xDataXML_convertAttributeTo_xDataTOM_Int( smr, XE, "length", &length, 1 ) != 0 ) return( 1 );
81 if( xDataXML_convertAttributeToDouble( smr, XE, "accuracy", &accuracy, 1 ) != 0 ) return( 1 );
82 if( xDataXML_convertAttributeToDouble( smr, XE, "value", &value, 1 ) != 0 ) return( 1 );
83 return( xDataXML_XYsDataToTOM( smr, XE, XYs, index, length, value, accuracy, xDataTOM_subAxesType_proxy, axesOffset, axes, NULL ) );
84}
@ xDataTOM_subAxesType_proxy
Definition: xDataTOM.h:24
int xDataXML_XYsDataToTOM(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_XYs *XYs, int index, int length, double value, double accuracy, enum xDataTOM_subAxesType subAxesType, int axesOffest, xDataTOM_axes *axes, xDataTOM_interpolation *interpolation)
xDataTOM_Int xDataXML_convertAttributeTo_xDataTOM_Int(statusMessageReporting *smr, xDataXML_element *element, char const *name, xDataTOM_Int *n, int required)
int xDataXML_convertAttributeToDouble(statusMessageReporting *smr, xDataXML_element *element, char const *name, double *d, int required)

References xDataTOM_subAxesType_proxy, xDataXML_convertAttributeTo_xDataTOM_Int(), xDataXML_convertAttributeToDouble(), and xDataXML_XYsDataToTOM().

Referenced by xDataXML_W_XYsDataToTOM().

◆ xDataXML_W_XYsDataToTOM()

int xDataXML_W_XYsDataToTOM ( statusMessageReporting smr,
xDataXML_element XE,
xDataTOM_W_XYs W_XYs,
int  index,
double  value,
xDataTOM_axes axes,
int  axesOffset 
)

Definition at line 41 of file xDataTOM_importXML_W_XYs.cc.

42 {
43
44 int length;
45 char const *wLabel;
46 xDataXML_element *XMLChild;
47
48 if( ( wLabel = xDataTOM_axes_getLabel( smr, axes, axesOffset ) ) == NULL ) goto err;
49 length = xDataXML_numberOfElementsByTagName( smr, XE, wLabel );
50 if( xDataTOM_W_XYs_initialize( smr, W_XYs, index, length, value, axes, axesOffset ) != 0 ) return( 1 );
51
52 for( XMLChild = xDataXML_getFirstElement( XE ), index = 0; XMLChild != NULL; XMLChild = xDataXML_getNextElement( XMLChild ) ) {
53 if( strcmp( "axes", XMLChild->name ) == 0 ) {
54 continue; }
55 else if( strcmp( wLabel, XMLChild->name ) == 0 ) {
56 if( xDataXML_W_XYs_XYsToTOM( smr, XMLChild, &(W_XYs->XYs[index]), axes, axesOffset + 1 ) != 0 ) goto err;
57 index++; }
58 else {
60 "invalid element '%s' in xData = 'W_XYs'", XMLChild->name );
61 goto err;
62 }
63 }
64
65 return( 0 );
66
67err:
68 return( 1 );
69}
#define smr_setReportError3(smr, userInterface, libraryID, code, fmt,...)
xDataTOM_XYs * XYs
Definition: xDataTOM.h:97
char const * xDataTOM_axes_getLabel(statusMessageReporting *smr, xDataTOM_axes *axes, int index)
int xDataTOM_W_XYs_initialize(statusMessageReporting *smr, xDataTOM_W_XYs *W_XYs, int index, int length, double value, xDataTOM_axes *axes, int axesOffset)
static int xDataXML_W_XYs_XYsToTOM(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_XYs *XYs, xDataTOM_axes *axes, int axesOffset)
void * xDataXML_get_smrUserInterfaceFromElement(xDataXML_element *element)
xDataXML_element * xDataXML_getNextElement(xDataXML_element *element)
xDataXML_element * xDataXML_getFirstElement(xDataXML_element *element)
int xDataXML_numberOfElementsByTagName(statusMessageReporting *smr, xDataXML_element *element, char const *tagName)
int xDataTOM_smrLibraryID
Definition: xDataTOM.cc:34

References xDataXML_element_s::name, smr_setReportError3, xDataTOM_axes_getLabel(), xDataTOM_smrLibraryID, xDataTOM_W_XYs_initialize(), xDataXML_get_smrUserInterfaceFromElement(), xDataXML_getFirstElement(), xDataXML_getNextElement(), xDataXML_numberOfElementsByTagName(), xDataXML_W_XYs_XYsToTOM(), and xDataTOM_W_XYs_s::XYs.

Referenced by xDataXML_V_W_XYs_W_XYsToTOM(), and xDataXML_W_XYsToTOM().

◆ xDataXML_W_XYsToTOM()

int xDataXML_W_XYsToTOM ( statusMessageReporting smr,
xDataXML_element XE,
xDataTOM_element TE 
)

Definition at line 22 of file xDataTOM_importXML_W_XYs.cc.

22 {
23
24 xDataTOM_xDataInfo *xDI = &(TE->xDataInfo);
25 xDataTOM_W_XYs *W_XYs;
26
27/* Need to release W_XYs if an error occurs later. */
28 if( ( xDI->data = xDataXML_initializeData( smr, XE, TE, xDataTOM_W_XYs_ID, sizeof( xDataTOM_W_XYs ) ) ) == NULL ) return( 1 );
29 W_XYs = (xDataTOM_W_XYs *) xDI->data;
30
31 if( xDataXML_W_XYsDataToTOM( smr, XE, W_XYs, 0, 0., &(xDI->axes), 0 ) != 0 ) goto err;
32 return( 0 );
33
34err:
35 smr_freeMemory( (void **) &(xDI->data) );
36 return( 1 );
37}
void * smr_freeMemory(void **p)
xDataTOM_xDataInfo xDataInfo
Definition: xDataTOM.h:187
xDataTOM_axes axes
Definition: xDataTOM.h:153
int xDataXML_W_XYsDataToTOM(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_W_XYs *W_XYs, int index, double value, xDataTOM_axes *axes, int axesOffset)
void * xDataXML_initializeData(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_element *TE, char const *ID, size_t size)
char const * xDataTOM_W_XYs_ID

References xDataTOM_xDataInfo_s::axes, xDataTOM_xDataInfo_s::data, smr_freeMemory(), xDataTOM_element_s::xDataInfo, xDataTOM_W_XYs_ID, xDataXML_initializeData(), and xDataXML_W_XYsDataToTOM().

Referenced by xDataXML_constructTOM().