Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
xDataTOM_importXML_V_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

int xDataXML_V_W_XYsToTOM (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_element *TE)
 

Function Documentation

◆ xDataXML_V_W_XYsToTOM()

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

Definition at line 21 of file xDataTOM_importXML_V_W_XYs.cc.

21 {
22
23 int index, length;
24 xDataTOM_xDataInfo *xDI = &(TE->xDataInfo);
25 xDataXML_element *XMLChild;
26 char const *wLabel;
27 xDataTOM_V_W_XYs *V_W_XYs;
28
29/* Need to release V_W_XYs if an error occurs later. */
30 if( ( xDI->data = xDataXML_initializeData( smr, XE, TE, xDataTOM_V_W_XYs_ID, sizeof( xDataTOM_V_W_XYs ) ) ) == NULL ) return( 1 );
31 V_W_XYs = (xDataTOM_V_W_XYs *) xDI->data;
32 if( ( wLabel = xDataTOM_axes_getLabel( smr, &(xDI->axes), 0 ) ) == NULL ) goto err;
33 length = xDataXML_numberOfElementsByTagName( smr, XE, wLabel );
34 if( xDataTOM_V_W_XYs_initialize( smr, V_W_XYs, length, &(xDI->axes) ) != 0 ) return( 1 );
35
36 for( XMLChild = xDataXML_getFirstElement( XE ), index = 0; XMLChild != NULL; XMLChild = xDataXML_getNextElement( XMLChild ) ) {
37 if( strcmp( "axes", XMLChild->name ) == 0 ) {
38 continue; }
39 else if( strcmp( wLabel, XMLChild->name ) == 0 ) {
40 if( xDataXML_V_W_XYs_W_XYsToTOM( smr, XMLChild, &(V_W_XYs->W_XYs[index]), &(xDI->axes) ) != 0 ) goto err;
41 index++; }
42 else {
44 "invalid element '%s' in xData = 'V_W_XYs'", XMLChild->name );
45 goto err;
46 }
47 }
48
49 return( 0 );
50
51err:
52 smr_freeMemory( (void **) &(xDI->data) );
53 return( 1 );
54}
#define smr_setReportError3(smr, userInterface, libraryID, code, fmt,...)
void * smr_freeMemory(void **p)
xDataTOM_W_XYs * W_XYs
Definition: xDataTOM.h:103
xDataTOM_xDataInfo xDataInfo
Definition: xDataTOM.h:187
xDataTOM_axes axes
Definition: xDataTOM.h:153
int xDataTOM_V_W_XYs_initialize(statusMessageReporting *smr, xDataTOM_V_W_XYs *V_W_XYs, int length, xDataTOM_axes *axes)
char const * xDataTOM_axes_getLabel(statusMessageReporting *smr, xDataTOM_axes *axes, int index)
void * xDataXML_initializeData(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_element *TE, char const *ID, size_t size)
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)
char const * xDataTOM_V_W_XYs_ID
int xDataTOM_smrLibraryID
Definition: xDataTOM.cc:34