Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
xDataTOM_importXML_XYs.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_XYs.cc:

Go to the source code of this file.

Functions

static int xDataXML_XYsDataToTOM2 (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_xDataInfo *xDI, int index, int length, double value, double accuracy)
 
int xDataXML_XYsToTOM (statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_element *TE)
 
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)
 
int xDataXML_stringToDoubles (statusMessageReporting *smr, xDataXML_element *XE, char const *s1, int length, double *d1)
 

Function Documentation

int xDataXML_stringToDoubles ( statusMessageReporting smr,
xDataXML_element XE,
char const *  s1,
int  length,
double *  d1 
)

Definition at line 96 of file xDataTOM_importXML_XYs.cc.

96  {
97 
98  char *e1 = (char *) s1;
99  int i1;
100 
101  for( i1 = 0; i1 < length; i1++, d1++, s1 = e1 ) {
102  if( xDataXML_stringTo_double( smr, xDataXML_get_smrUserInterfaceFromElement( XE ), s1, d1, " \n", &e1 ) ) return( 1 );
103  }
104  while( isspace( *e1 ) ) e1++; /* There should be nothing but white spaces left in the string. */ // Loop checking, 11.06.2015, T. Koi
105  if( *e1 != 0 ) {
106  smr_setReportError3( smr, xDataXML_get_smrUserInterfaceFromElement( XE ), xDataTOM_smrLibraryID, -1, "text contains extra data = %s", e1 );
107  return( 1 );
108  }
109  return( 0 );
110 }
int xDataTOM_smrLibraryID
Definition: xDataTOM.cc:34
void * xDataXML_get_smrUserInterfaceFromElement(xDataXML_element *element)
int xDataXML_stringTo_double(statusMessageReporting *smr, void *smrUserInterface, char const *c, double *value, char const *endings, char **e)
static const G4double d1
#define smr_setReportError3(smr, userInterface, libraryID, code, fmt,...)

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)

Definition at line 76 of file xDataTOM_importXML_XYs.cc.

77  {
78 
79  XYs->index = index;
80  XYs->length = length;
81  XYs->value = value;
82  XYs->accuracy = accuracy;
83  if( xDataTOM_subAxes_initialize( smr, &(XYs->subAxes), subAxesType, axesOffest, axes, interpolation ) != 0 ) return( 1 );
84  if( ( XYs->data = (double *) smr_malloc2( smr, 2 * length * sizeof( double ), 0, "XYs->data" ) ) == NULL ) goto err;
85 
86  if( xDataXML_stringToDoubles( smr, XE, XE->text.text, 2 * length, (double *) XYs->data ) != 0 ) goto err;
87  return( 0 );
88 
89 err:
90  smr_freeMemory( (void **) &(XYs->data) );
91  return( 1 );
92 }
double accuracy
Definition: xDataTOM.h:82
xDataTOM_subAxes subAxes
Definition: xDataTOM.h:83
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
double * data
Definition: xDataTOM.h:84
#define smr_malloc2(smr, size, zero, forItem)
double value
Definition: xDataTOM.h:82
void * smr_freeMemory(void **p)
int xDataXML_stringToDoubles(statusMessageReporting *smr, xDataXML_element *XE, char const *s, int length, double *d)

Here is the call graph for this function:

Here is the caller graph for this function:

static int xDataXML_XYsDataToTOM2 ( statusMessageReporting smr,
xDataXML_element XE,
xDataTOM_xDataInfo xDI,
int  index,
int  length,
double  value,
double  accuracy 
)
static

Definition at line 57 of file xDataTOM_importXML_XYs.cc.

58  {
59 
60  xDataTOM_XYs *XYs;
61 
62  xDI->ID = xDataTOM_XYs_ID;
63  if( ( xDI->data = (xDataTOM_XYs *) smr_malloc2( smr, sizeof( xDataTOM_XYs ), 1, "xDI->data" ) ) == NULL ) goto err;
64  XYs = (xDataTOM_XYs *) xDI->data;
65 
66  if( xDataXML_XYsDataToTOM( smr, XE, XYs, index, length, value, accuracy, xDataTOM_subAxesType_proxy, 0, &(xDI->axes), NULL ) != 0 ) goto err;
67  return( 0 );
68 
69 err:
70  smr_freeMemory( (void **) &(xDI->data) );
71  return( 1 );
72 }
char const * xDataTOM_XYs_ID
Definition: xDataTOM_XYs.cc:14
const char * ID
Definition: xDataTOM.h:151
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)
const XML_Char int const XML_Char * value
Definition: expat.h:331
#define smr_malloc2(smr, size, zero, forItem)
void * smr_freeMemory(void **p)
xDataTOM_axes axes
Definition: xDataTOM.h:153

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 22 of file xDataTOM_importXML_XYs.cc.

22  {
23 
24  int dataProcessed = 0, length;
25  double accuracy;
26  xDataTOM_xDataInfo *xDI = &(TE->xDataInfo);
27  xDataXML_element *XMLChild;
28 
29  xDI->element = TE;
30  if( xDataXML_convertAttributeTo_xDataTOM_Int( smr, XE, "length", &length, 1 ) != 0 ) return( 1 );
31  if( xDataXML_convertAttributeToDouble( smr, XE, "accuracy", &accuracy, 1 ) != 0 ) return( 1 );
32  if( xDataXML_axesElememtToTOM( smr, XE, &(xDI->axes) ) != 0 ) return( 1 );
33  for( XMLChild = xDataXML_getFirstElement( XE ); XMLChild != NULL; XMLChild = xDataXML_getNextElement( XMLChild ) ) {
34  if( strcmp( "axes", XMLChild->name ) == 0 ) {
35  continue; }
36  else if( strcmp( "data", XMLChild->name ) == 0 ) {
37  if( dataProcessed ) {
38  smr_setReportError3p( smr, xDataXML_get_smrUserInterfaceFromElement( XE ), xDataTOM_smrLibraryID, -1, "multiple 'data' elements found" );
39  goto err;
40  }
41  dataProcessed = 1;
42  if( xDataXML_XYsDataToTOM2( smr, XMLChild, xDI, -1, length, 0., accuracy ) != 0 ) goto err;
43  }
44  }
45  if( dataProcessed == 0 ) {
47  goto err;
48  }
49  return( 0 );
50 
51 err:
52  return( 1 );
53 }
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)
static int xDataXML_XYsDataToTOM2(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_xDataInfo *xDI, int index, int length, double value, double accuracy)
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)
xDataTOM_axes axes
Definition: xDataTOM.h:153
xDataTOM_xDataInfo xDataInfo
Definition: xDataTOM.h:187
xDataXML_element * xDataXML_getFirstElement(xDataXML_element *element)
int xDataXML_axesElememtToTOM(statusMessageReporting *smr, xDataXML_element *XE, xDataTOM_axes *axes)
xDataTOM_element * element
Definition: xDataTOM.h:152

Here is the call graph for this function:

Here is the caller graph for this function: