Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
xDataTOM_importXML_regionsXYs.cc File Reference
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>
#include "xDataTOM_importXML_private.h"
Include dependency graph for xDataTOM_importXML_regionsXYs.cc:

Go to the source code of this file.

Functions

static int xDataXML_regionsXYs_regionToTOM (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_XYs *XYs, xDataTOM_axes *axes)
 
static int xDataXML_regionsXYs_XYsToTOM (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_XYs *XYs, xDataTOM_axes *axes, xDataTOM_interpolation *interpolation, int index, int length, double accuracy)
 
int xDataXML_regionsXYsToTOM (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_element *TE)
 

Function Documentation

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

Definition at line 59 of file xDataTOM_importXML_regionsXYs.cc.

59  {
60 
61  int index, length;
62  double accuracy;
63  xDataXML_element *XMLChild, *interpolationAxesElement = NULL, *dataElement = NULL;
64  xDataTOM_interpolation interpolation;
65  char const *sInterpolation;
66 
67  if( xDataXML_convertAttributeTo_xDataTOM_Int( smr, XE, "index", &index, 1 ) != 0 ) return( 1 );
68  if( xDataXML_convertAttributeTo_xDataTOM_Int( smr, XE, "length", &length, 1 ) != 0 ) return( 1 );
69  if( xDataXML_convertAttributeToDouble( smr, XE, "accuracy", &accuracy, 1 ) != 0 ) return( 1 );
70 
71  for( XMLChild = xDataXML_getFirstElement( XE ); XMLChild != NULL; XMLChild = xDataXML_getNextElement( XMLChild ) ) {
72  if( strcmp( "interpolationAxes", XMLChild->name ) == 0 ) {
73  if( interpolationAxesElement != NULL ) {
75  "multiple %s elements in element 'region'", XMLChild->name );
76  goto err;
77  }
78  interpolationAxesElement = XMLChild; }
79  else if( strcmp( "data", XMLChild->name ) == 0 ) {
80  if( dataElement != NULL ) {
82  "multiple %s elements in element 'region'", XMLChild->name );
83  goto err;
84  }
85  dataElement = XMLChild; }
86  else {
88  "invalid element '%s' in element 'region'", XMLChild->name );
89  goto err;
90  }
91  }
92  if( interpolationAxesElement == NULL ) {
94  "missing 'interpolationAxes' element in element 'region'" );
95  goto err;
96  }
97  if( ( sInterpolation = xDataXML_getAttributesValueInElement( interpolationAxesElement, "interpolation" ) ) == NULL ) {
99  "missing attribute 'interpolation'" );
100  goto err;
101  }
102  if( xDataTOM_interpolation_setFromString( smr, &interpolation, sInterpolation ) != 0 ) goto err;
103  if( dataElement == NULL ) {
105  "missing 'data' element in element 'region'" );
106  goto err;
107  }
108  xDataXML_regionsXYs_XYsToTOM( smr, dataElement, XYs, axes, &interpolation, index, length, accuracy );
109  return( 0 );
110 
111 err:
112 /* Need to free things here?????????.*/
113 
114  return( 1 );
115 }
static int xDataXML_regionsXYs_XYsToTOM(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_XYs *XYs, xDataTOM_axes *axes, xDataTOM_interpolation *interpolation, int index, int length, double accuracy)
int xDataTOM_smrLibraryID
Definition: xDataTOM.cc:34
#define smr_setReportError3p(smr, userInterface, libraryID, code, fmt)
xDataTOM_Int xDataXML_convertAttributeTo_xDataTOM_Int(statusMessageReporting *smr, xDataXML_element *element, char const *name, xDataTOM_Int *n, int required)
void * xDataXML_get_smrUserInterfaceFromElement(xDataXML_element *element)
xDataXML_element * xDataXML_getNextElement(xDataXML_element *element)
int xDataXML_convertAttributeToDouble(statusMessageReporting *smr, xDataXML_element *element, char const *name, double *d, int required)
char const * xDataXML_getAttributesValueInElement(xDataXML_element *element, char const *name)
#define smr_setReportError3(smr, userInterface, libraryID, code, fmt,...)
int xDataTOM_interpolation_setFromString(statusMessageReporting *smr, xDataTOM_interpolation *interpolation, char const *str)
xDataXML_element * xDataXML_getFirstElement(xDataXML_element *element)

Here is the call graph for this function:

Here is the caller graph for this function:

static int xDataXML_regionsXYs_XYsToTOM ( statusMessageReporting smr,
xDataXML_element XE,
xDataTOM_XYs XYs,
xDataTOM_axes axes,
xDataTOM_interpolation interpolation,
int  index,
int  length,
double  accuracy 
)
static

Definition at line 119 of file xDataTOM_importXML_regionsXYs.cc.

120  {
121 
122  return( xDataXML_XYsDataToTOM( smr, XE, XYs, index, length, 0., accuracy, xDataTOM_subAxesType_intepolationAxes, 0, axes, interpolation ) );
123 }
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)

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 23 of file xDataTOM_importXML_regionsXYs.cc.

23  {
24 
25  int index;
26  xDataTOM_xDataInfo *xDI = &(TE->xDataInfo);
27  xDataXML_element *XMLChild;
28  xDataTOM_regionsXYs *regionsXYs;
29 
30  if( ( xDI->data = xDataXML_initializeData( smr, XE, TE, xDataTOM_regionsXYs_ID, sizeof( xDataTOM_regionsXYs ) ) ) == NULL ) return( 1 );
31  regionsXYs = (xDataTOM_regionsXYs *) xDI->data;
32  regionsXYs->axes = &(xDI->axes);
33  regionsXYs->length = xDataXML_numberOfElementsByTagName( smr, XE, "region" );
34  if( ( regionsXYs->XYs = (xDataTOM_XYs *) smr_malloc2( smr, regionsXYs->length * sizeof( xDataTOM_XYs ), 1, "regionsXYs->XYs" ) ) == NULL ) goto err;
35 
36 
37  for( XMLChild = xDataXML_getFirstElement( XE ), index = 0; XMLChild != NULL; XMLChild = xDataXML_getNextElement( XMLChild ) ) {
38  if( strcmp( "axes", XMLChild->name ) == 0 ) {
39  continue; }
40  else if( strcmp( "region", XMLChild->name ) == 0 ) {
41  if( xDataXML_regionsXYs_regionToTOM( smr, XMLChild, &(regionsXYs->XYs[index]), regionsXYs->axes ) != 0 ) goto err;
42  index++; }
43  else {
45  "invalid element '%s' in xData 'regionsXYs'", XMLChild->name );
46  goto err;
47  }
48  }
49 
50  return( 0 );
51 
52 err:
53 /* Need to free things here?????????.*/
54  return( 1 );
55 }
int xDataTOM_smrLibraryID
Definition: xDataTOM.cc:34
xDataTOM_XYs * XYs
Definition: xDataTOM.h:90
xDataTOM_axes * axes
Definition: xDataTOM.h:89
void * xDataXML_initializeData(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_element *TE, char const *ID, size_t size)
int xDataXML_numberOfElementsByTagName(statusMessageReporting *smr, xDataXML_element *element, char const *tagName)
void * xDataXML_get_smrUserInterfaceFromElement(xDataXML_element *element)
#define smr_malloc2(smr, size, zero, forItem)
xDataXML_element * xDataXML_getNextElement(xDataXML_element *element)
static int xDataXML_regionsXYs_regionToTOM(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_XYs *XYs, xDataTOM_axes *axes)
xDataTOM_axes axes
Definition: xDataTOM.h:153
#define smr_setReportError3(smr, userInterface, libraryID, code, fmt,...)
xDataTOM_xDataInfo xDataInfo
Definition: xDataTOM.h:187
xDataXML_element * xDataXML_getFirstElement(xDataXML_element *element)
char const * xDataTOM_regionsXYs_ID

Here is the call graph for this function:

Here is the caller graph for this function: