⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sx_defs.h

📁 ICCP Toolkit 是在 Tru64下开发Tase.2通信协议的开发包
💻 H
📖 第 1 页 / 共 2 页
字号:
/************************************************************************//* SISCO SOFTWARE MODULE HEADER *****************************************//************************************************************************//*   (c) Copyright Systems Integration Specialists Company, Inc.,	*//*      		1999 - 2002, All Rights Reserved		*//*									*//* MODULE NAME : sx_defs.h						*//* PRODUCT(S)  : 							*//*									*//* MODULE DESCRIPTION : 						*//*									*//* GLOBAL FUNCTIONS DEFINED IN THIS MODULE :				*//*									*//* MODIFICATION LOG :							*//*  Date     Who   Rev			Comments			*//* --------  ---  ------   -------------------------------------------	*//* 06/28/02  RWM     36    Added function sx_get_time_ex                *//* 05/15/02  RWM     35    Added numAlloced3 to sx_dec_ctrl             *//* 04/17/02  EJV     34    Added 'utc' fun ptr in SXD_ARB_DATA_CTRL	*//* 03/05/02  JRB     33    Add more SD_CONST.				*//* 02/26/02  EJV     32    strStart: added SD_CONST for rt_head param.	*//* 01/21/02  EJV     31    Added useFp field in SX_ENC_CTRL.		*//*			   Added sx_start_encodeEx, sx_init_encodeEx.	*//*			   Added sx_add_buf, sx_wr_comment funcs.	*//* 11/28/01  DSF     30    Added a global flag sxIgnoreNS and a ignoreNS*//*			   field to SX_DEC_CTRL to allow the user to	*//*			   ignore namespaces in element and atttribute	*//*			   names					*//* 11/21/01  DGE     29    Removed sx_wr_int16 & sx_wr_int8 functions. 	*//* 11/21/01  MDE     28    Moved elemBuf to SX_DEC_CONTROL		*//* 11/21/01  DGE     27    Added sx_wr_int16 & sx_wr_int8 functions.  	*//* 11/15/01  DGE     26    Added sx_wr_float functions & changed type 	*//*			    on sx_wr_double functions to ST_DOUBLE from	*//*			    double.					*//* 08/22/01  DSF     25    Added elUser used to return the user pointer	*//*			   stored in the current element structure	*//* 06/25/01  EJV     24    For thread safe operation:			*//*			   SX_ENC_CTRL: +sxdPrefix, +sxdStructNestLevel;*//*			   SX_DEC_ELEMENT_INFO: +elemBuf;		*//*			   Added SX_MAX_ELEM_LEN, SXD_MAX_PREFIX defines*//*			   strStart: added rt_head parameter.		*//*			   SX_DEC_CTRL: added u_sx_el_start, u_sx_el_end*//*			   Added twin funcs: sx_parse_mt, sx_parseEx_mt.*//* 05/18/01  RKR     23    Cleaned up some prototypes			*//* 05/11/01  JRB     22    Pass fileName, not (FILE *) to sx_parseEx.	*//* 04/19/01  RWM     21    Added prototype for sx_format_string         *//* 03/27/01  MDE     20    Added SXA (local/AXS4 data)			*//* 03/21/01  MDE     19    Added arb data handling 			*//* 02/28/01  MDE     18    Removed bEmptyTag from SX_ENC_CTRL		*//* 02/22/01  MDE     17    Changes to support SXD style selections	*//* 02/12/01  RWM     16    Added file pointer and flag to SX_DEC_CTRL   *//* 01/24/01  EJV     15    Added sx_dec_ctrl forward definition		*//* 01/22/01  DWL     14    Created global var sxUseFormatting		*//* 01/02/01  DWL     13    Removed UIB_DEFINED check			*//* 12/05/00  MDE     12    Added SX_XML_MALFORMED error code		*//* 12/04/00  MDE     11    Allow limit defines to be overridden		*//* 11/06/00  DWL     10    Modified sx_write_element and sx_end_element	*//*                         calls with added parameter			*//* 11/02/00  MDE     09    Changed attribute handling a bit		*//* 10/30/99  MDE     08    Significant cleanup and new features		*//* 09/29/00  DWL     07    Created new error code to allow parse to 	*//*			   continue or stop				*//* 08/15/00  DWL     06    Removed MAX_MSG_SIZE			        *//* 08/11/00  DWL     05    Added UIB_DEFINED member		        *//* 07/20/00  DWL     04    Added formatting member to SX_ENC_CTRL       *//* 03/21/00  DWL     03    Changed sx_wr_string_el to accept attributes *//* 03/15/00  DWL     02    Removed redefinition of SX_DEC_CTRL		*//* 09/15/99          01    Module created				*//************************************************************************//************************************************************************/#ifndef SX_DEFS_INCLUDED#define SX_DEFS_INCLUDED#ifdef __cplusplusextern "C" {#endif/************************************************************************/#include "glbtypes.h"#include "mms_def2.h"#include "mms_mp.h"#include "mms_pvar.h"#include "mms_vvar.h"/************************************************************************//* This is the amount of overhead required to ensure no overwrite 	*/#define SX_ENC_BUFFER_OH 	20/************************************************************************//* Capacities */#if !defined(SX_MAX_XML_NEST)#define SX_MAX_XML_NEST	        30 #endif#if !defined(SX_MAX_STACK_LEVEL)#define SX_MAX_STACK_LEVEL      25#endif#if !defined(SX_MAX_TAG_LEN)#define SX_MAX_TAG_LEN	       100#endif#if !defined(SX_MAX_ATTRIB)#define SX_MAX_ATTRIB 		20#endif#if !defined(SX_MAX_ATTR_NAME)#define SX_MAX_ATTR_NAME       100#endif#if !defined(SX_MAX_ATTR_VALUE)#define SX_MAX_ATTR_VALUE     1000	#endif#if !defined(SX_MAX_ELEM_LEN)#define SX_MAX_ELEM_LEN       2000#endif/************************************************************************//* Error codes - stop parsing */#define SX_USER_ERROR			1#define SX_STRUCT_NOT_FOUND	    	2#define SX_REQUIRED_TAG_NOT_FOUND	3#define SX_DUPLICATE_NOT_ALLOWED	4#define SX_EMPTY_TAG_NOT_ALLOWED	5#define SX_XML_NEST_TOO_DEEP	    	6#define SX_XML_BUFFER_OVER_MAX		7#define SX_XML_MALFORMED		8/* Normal errors - continue with parse */#define SX_ERR_CONVERT		       10/************************************************************************//************************************************************************//* XML <-> Local XML Style Selection					*//* Note: Style A must have the value 0 */#define SXD_XML_STYLE_A	0 /* Values as attrib, single element/struct 	*/#define SXD_XML_STYLE_C	1 /* CDATA value encoding	      		*/#define SXD_XML_STYLE_V	2 /* Each value has own element, attrib encoded	*/extern ST_INT sxdDefXmlStyle; 	/* Note: 0 is style A *//* Examples:								*//* A: <Mail pnid="12" zip="48044"/>					*//* A: <Alarm tag="BinFull" vs.v="78" vs.s="Good"/>			*//* C: <Mail><pnid>12</pnid><zip>48044<zip></Mail>			*//* C: <Alarm><tag>BinFull</tag><vs><v>78</v><s>Good</s></vs></Alarm>	*/									/* V: <Mail><pnid V="12"/><zip V="48044"/></Mail>			*//* V: <Alarm><tag V="BinFull"/><vs><v V="78"/><s V="Good"/></vs></Alarm>*//************************************************************************//************************************************************************/extern ST_BOOLEAN sxUseSax;extern ST_BOOLEAN sxUseFormatting;extern ST_BOOLEAN sxIgnoreNS;/* elementFlags defines; bitmasked */#define SX_ELF_CSTART		0x0001#define SX_ELF_CEND		0x0002#define SX_ELF_CSTARTEND	0x0003#define SX_ELF_RPT		0x0008#define SX_ELF_OPT		0x0004#define SX_ELF_OPTRPT		0x000C#define SX_ELF_EMPTYOK		0x0010struct sx_dec_ctrl;		/* forward definition */typedef struct sx_element  {  char *tag;  ST_INT elementFlags;  void (*funcPtr)(struct sx_dec_ctrl *sxDecCtrl);  char *user;/* Runtime elements */  ST_INT numOcc;  } SX_ELEMENT;/************************************************************************//* defines for 'reason' */#define SX_ELEMENT_START	1#define SX_ELEMENT_END		2typedef struct sx_element_tbl_ctrl  {  ST_INT numItems;  SX_ELEMENT *itemTbl;  } SX_ELEMENT_TBL_CTRL;typedef struct sxe_attr_pair  {  ST_CHAR *name;  ST_CHAR *value;  } SXE_ATTR_PAIR;typedef struct sxd_attr_pair  {  ST_CHAR name[SX_MAX_ATTR_NAME];  ST_CHAR value[SX_MAX_ATTR_VALUE];  } SXD_ATTR_PAIR;typedef struct sx_dec_element_info  {  ST_CHAR tag[SX_MAX_TAG_LEN];		/* start/end			*/  ST_CHAR *entityStart;			/* start (and simple end)	*/  ST_UINT attrCount;			/* start (and simple end)	*/  SXD_ATTR_PAIR attr[SX_MAX_ATTRIB];	/* start (and simple end)	*/  ST_CHAR *entityEnd;			/* end				*/  } SX_DEC_ELEMENT_INFO;typedef struct sx_dec_ctrl   {/* XML being decoded		*/  ST_CHAR *xmlStart;			  ST_INT xmlLen;  ST_BOOLEAN useFp;  ST_BOOLEAN ignoreNS;  FILE *fp;/* Decoded element information 	*/  ST_INT reason;		   /* SX_ELEMENT_START, SX_ELEMENT_END	*/  SX_DEC_ELEMENT_INFO sxDecElInfo;   ST_CHAR elemBuf[SX_MAX_ELEM_LEN+1];	/* tmp buffer for an element	*//* Set to != SD_SUCCESS for error */  ST_RET errCode; 		/* defined above *//* Internal use */  SX_ELEMENT *item;  ST_INT itemStackLevel;  SX_ELEMENT_TBL_CTRL items[SX_MAX_STACK_LEVEL];  ST_BOOLEAN auto_pop[SX_MAX_STACK_LEVEL];  ST_INT xmlNestLevel;  SX_ELEMENT *elTbl[SX_MAX_XML_NEST];  ST_CHAR *xmlPos;  ST_INT numAlloced; /* Used to keep track of dynamically allocated message buffers */  ST_INT numAlloced2;  ST_INT numAlloced3;/* User fields */  ST_VOID *usr;  ST_VOID *elUser;    /* Function pointers below should be used for thread safe XML enc/dec	*/  /* instead of using the global variables u_sx_el_start, u_sx_el_end.	*/  /* The initial values for these pointers are passed to the functions	*/  /* sx_parse_mt or sx_parseEx_mt.					*/  ST_RET (*u_sx_el_start) (struct sx_dec_ctrl *sxDecCtrl, ST_CHAR *tag);  ST_RET (*u_sx_el_end) (struct sx_dec_ctrl *sxDecCtrl, ST_CHAR *tag);  } SX_DEC_CTRL ;/************************************************************************/#define SX_PUSH(itemTbl)\  sx_push (sxDecCtrl, sizeof(itemTbl)/sizeof(SX_ELEMENT), itemTbl, SD_TRUE);/* Thread unsafe versions of XML parsing				*//* They are using the u_sx_el_xxx global function pointers 		*/ST_RET sx_parse (ST_LONG lMsgLen, ST_CHAR *xml, ST_INT numItems, 		 SX_ELEMENT *itemTbl, ST_VOID *usr);ST_RET sx_parseEx (ST_CHAR *fileName, ST_INT numItems, 		   SX_ELEMENT *itemTbl, ST_VOID *usr);/* Thread safe versions of XML parsing					*//* They are using the u_sx_el_xxx defined in the SX_DEC_CTRL) 		*/ST_RET sx_parse_mt (ST_LONG lMsgLen, ST_CHAR *xml, ST_INT numItems, 		 SX_ELEMENT *itemTbl, ST_VOID *usr,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -