1340084Svangyzen/* Interface to some helper routines used to accumulate and check 2340084Svangyzen structured content. 3340084Svangyzen __ __ _ 4340084Svangyzen ___\ \/ /_ __ __ _| |_ 5340084Svangyzen / _ \\ /| '_ \ / _` | __| 6340084Svangyzen | __// \| |_) | (_| | |_ 7340084Svangyzen \___/_/\_\ .__/ \__,_|\__| 8340084Svangyzen |_| XML parser 9340084Svangyzen 10340084Svangyzen Copyright (c) 1997-2000 Thai Open Source Software Center Ltd 11340084Svangyzen Copyright (c) 2000-2017 Expat development team 12340084Svangyzen Licensed under the MIT license: 13340084Svangyzen 14340084Svangyzen Permission is hereby granted, free of charge, to any person obtaining 15340084Svangyzen a copy of this software and associated documentation files (the 16340084Svangyzen "Software"), to deal in the Software without restriction, including 17340084Svangyzen without limitation the rights to use, copy, modify, merge, publish, 18340084Svangyzen distribute, sublicense, and/or sell copies of the Software, and to permit 19340084Svangyzen persons to whom the Software is furnished to do so, subject to the 20340084Svangyzen following conditions: 21340084Svangyzen 22340084Svangyzen The above copyright notice and this permission notice shall be included 23340084Svangyzen in all copies or substantial portions of the Software. 24340084Svangyzen 25340084Svangyzen THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 26340084Svangyzen EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 27340084Svangyzen MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 28340084Svangyzen NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 29340084Svangyzen DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 30340084Svangyzen OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 31340084Svangyzen USE OR OTHER DEALINGS IN THE SOFTWARE. 32340084Svangyzen*/ 33340084Svangyzen 34340084Svangyzen#ifdef __cplusplus 35340084Svangyzenextern "C" { 36340084Svangyzen#endif 37340084Svangyzen 38340084Svangyzen#ifndef XML_STRUCTDATA_H 39355604Sdelphij# define XML_STRUCTDATA_H 1 40340084Svangyzen 41355604Sdelphij# include "expat.h" 42340084Svangyzen 43340084Svangyzentypedef struct { 44355604Sdelphij const XML_Char *str; 45355604Sdelphij int data0; 46355604Sdelphij int data1; 47355604Sdelphij int data2; 48340084Svangyzen} StructDataEntry; 49340084Svangyzen 50340084Svangyzentypedef struct { 51355604Sdelphij int count; /* Number of entries used */ 52355604Sdelphij int max_count; /* Number of StructDataEntry items in `entries` */ 53355604Sdelphij StructDataEntry *entries; 54340084Svangyzen} StructData; 55340084Svangyzen 56340084Svangyzenvoid StructData_Init(StructData *storage); 57340084Svangyzen 58355604Sdelphijvoid StructData_AddItem(StructData *storage, const XML_Char *s, int data0, 59355604Sdelphij int data1, int data2); 60340084Svangyzen 61355604Sdelphijvoid StructData_CheckItems(StructData *storage, const StructDataEntry *expected, 62340084Svangyzen int count); 63340084Svangyzen 64340084Svangyzenvoid StructData_Dispose(StructData *storage); 65340084Svangyzen 66355604Sdelphij#endif /* XML_STRUCTDATA_H */ 67340084Svangyzen 68340084Svangyzen#ifdef __cplusplus 69340084Svangyzen} 70340084Svangyzen#endif 71