19 using namespace kome::io::mzml;
24 #define new new( _NORMAL_BLOCK, __FILE__, __LINE__ )
25 #define malloc( s ) _malloc_dbg( s, _NORMAL_BLOCK, __FILE__, __LINE__ )
30 #define SPEC_TAG_NAME "spectrum"
31 #define CHROM_TAG_NAME "chromatogram"
32 #define ARRAY_TAG_NAME "binaryDataArray"
33 #define PARAM_GROUP_TAG_NAME "referenceableParamGroupRef"
34 #define CV_TAG_NAME "cvParam"
35 #define BINARY_TAG_NAME "binary"
37 #define SPEC_ID_ATTR_NAME "id"
38 #define SPEC_LENGTH_ATTR_NAME "defaultArrayLength"
39 #define CHROM_ID_ATTR_NAME "id"
40 #define CHROM_LENGTH_ATTR_NAME "defaultArrayLength"
41 #define ARRAY_LENGTH_ATTR_NAME "arrayLength"
42 #define PARAM_GROUP_ID_ATTR_NAME "ref"
43 #define CV_ACCESSION_ATTR_NAME "accession"
44 #define CV_UNIT_ATTR_NAME "unitAccession"
49 : m_sample( sample ), m_id( NVL( id,
"" ) ), m_xyData( xyData ) {
111 if( strcmp( name, SPEC_TAG_NAME ) == 0 ) {
113 const char*
id = attrs.getStringValue( SPEC_ID_ATTR_NAME,
"" );
114 if(
m_id.compare(
id ) == 0 ) {
116 m_dataLength = attrs.getIntValue( SPEC_LENGTH_ATTR_NAME, 0 );
119 else if( strcmp( name, CHROM_TAG_NAME ) == 0 ) {
121 const char*
id = attrs.getStringValue( CHROM_ID_ATTR_NAME,
"" );
122 if(
m_id.compare(
id ) == 0 ) {
124 m_dataLength = attrs.getIntValue( CHROM_LENGTH_ATTR_NAME, 0 );
127 else if( strcmp( name, ARRAY_TAG_NAME ) == 0 ) {
140 else if( strcmp( name, PARAM_GROUP_TAG_NAME ) == 0 ) {
142 const char*
id = attrs.getStringValue( PARAM_GROUP_ID_ATTR_NAME,
"" );
150 else if( strcmp( name, CV_TAG_NAME ) == 0 ) {
153 const char* accession = attrs.getStringValue( CV_ACCESSION_ATTR_NAME,
"" );
156 if( strcmp( accession,
"MS:1000514" ) == 0 ) {
162 else if( strcmp( accession,
"MS:1000595" ) == 0 ) {
168 const char* unit = attrs.getStringValue( CV_UNIT_ATTR_NAME,
"" );
169 if( strcmp( unit,
"UO:0000031" ) != 0 ) {
173 else if( strcmp( accession,
"MS:1000515" ) == 0 ) {
177 else if( strcmp( accession,
"MS:1000521" ) == 0 ) {
180 else if( strcmp( accession,
"MS:1000523" ) == 0 ) {
183 else if( strcmp( accession,
"MS:1000576" ) == 0 ) {
186 else if( strcmp( accession,
"MS:1000574" ) == 0 ) {
196 if( strcmp( name, SPEC_TAG_NAME ) == 0 ) {
201 else if( strcmp( name, CHROM_TAG_NAME ) == 0 ) {
206 else if( strcmp( name, BINARY_TAG_NAME ) == 0 ) {
224 char* data0 =
new char[ strlen( text ) ];
225 unsigned long size0 = kome::core::Base64::decode( (
char*)text, strlen( text ), data0, strlen( text ) );
228 char* data1 =
new char[ size1 ];
231 uncompress( (Bytef*)data1, &size1, (Bytef*)data0, size0 );
234 memcpy( data1, data0, size1 );
239 double* dArr = (
double*)data1;
243 memreverse( arr + i,
sizeof(
double ) );
248 float* fArr = (
float*)data1;
252 memreverse( arr + i,
sizeof(
double ) );
kome::core::XYData & m_xyData
interfaces of MzmlDataHandler class
virtual void onEndElement(const char *name, const char *text)
This method is called by end element method. (override method)
virtual void onStartElement(const char *name, kome::core::Properties &attrs)
This method is called by startElement method. (override method)
virtual ~MzmlDataHandler()
destructor
virtual void onEndDocument()
This method is called by endDocument method. (override method)
interfaces of MzmlSample class
ArrayInfo * getArrayInfo(const char *name)
gets array information
MzmlSample::ArrayInfo m_arrayInfo
MzmlDataHandler(MzmlSample &sample, const char *id, kome::core::XYData &xyData)
constructor
virtual void onStartDocument()
This method is called by startDocument method. (override method)
void setPoints()
set data points