Objective Systems, Inc.  
Home
About ASN.1
Products
Free Software
Documents
Services
Resources
Resellers
Customers
Careers
About Us
Contact Us
 

Google


Objective Systems, Inc.

asn1xer.h

Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 1997-2004 by Objective Systems, Inc. 00003 * 00004 * This software is furnished under a license and may be used and copied 00005 * only in accordance with the terms of such license and with the 00006 * inclusion of the above copyright notice. This software or any other 00007 * copies thereof may not be provided or otherwise made available to any 00008 * other person. No title to and ownership of the software is hereby 00009 * transferred. 00010 * 00011 * The information in this software is subject to change without notice 00012 * and should not be construed as a commitment by Objective Systems, Inc. 00013 * 00014 * PROPRIETARY NOTICE 00015 * 00016 * This software is an unpublished work subject to a confidentiality agreement 00017 * and is protected by copyright and trade secret law. Unauthorized copying, 00018 * redistribution or other use of this work is prohibited. 00019 * 00020 * The above notice of copyright on this source code product does not indicate 00021 * any actual or intended publication of such source code. 00022 * 00023 *****************************************************************************/ 00024 /* 00025 // CHANGE LOG 00026 // Date Init Description 00027 // 11/03/03 CZ Expand documentation comments. 00028 // 00030 */ 00031 00068 #ifndef _ASN1XER_H_ 00069 #define _ASN1XER_H_ 00070 00071 #include "rtsrc/asn1type.h" 00072 #include "rtSAXDefs.h" 00073 00086 typedef enum { 00087 XERINIT, 00088 XERSTART, 00089 XERDATA, 00090 XEREND, 00091 00092 XERSTART0, 00093 XEREND0 00094 } ASN1XERState; 00095 00096 #define XERINDENT 3 00097 00098 typedef struct { 00099 ASN1ConstCharPtr name; 00100 ASN1BOOL optional; 00101 } XerElemInfo; 00102 00103 typedef struct XmlNamedBitsDict { 00104 ASN1ConstCharPtr name; 00105 ASN1UINT bitnum; 00106 } XmlNamedBitsDict; 00107 00108 /* This macro returns the byte count in the given context buffer */ 00109 #define XERBYTECNT(pctxt) (pctxt)->buffer.byteIndex 00110 00111 #ifdef __cplusplus 00112 extern "C" { 00113 #endif 00114 00115 #ifdef BUILDASN1XERDLL 00116 #define EXTERNXER __declspec(dllexport) 00117 #elif defined (USEASN1XERDLL) 00118 #define EXTERNXER __declspec(dllimport) 00119 #else 00120 #define EXTERNXER 00121 #endif /* BUILDASN1XERDLL */ 00122 00123 /* decode functions */ 00151 EXTERNXER int xerDecBMPStr (ASN1CTXT* pctxt, 00152 ASN1BMPString* outdata); 00153 00177 EXTERNXER int xerDecBase64Str (ASN1CTXT* pctxt, 00178 ASN1OCTET* pvalue, ASN1UINT* pnocts, 00179 ASN1INT bufsize); 00180 00205 EXTERNXER int xerDecBigInt (ASN1CTXT* pctxt, char **ppvalue, int radix); 00206 00207 00231 EXTERNXER int xerDecBitStr (ASN1CTXT* pctxt, ASN1OCTET* pvalue, 00232 ASN1UINT* pnbits, ASN1INT bufsize); 00233 00251 EXTERNXER int xerDecBitStrMemBuf (ASN1MemBuf* pMemBuf, 00252 ASN1Const XMLCHAR* inpdata, 00253 int length, ASN1BOOL skipWhitespaces); 00254 00265 EXTERNXER int xerDecBool (ASN1CTXT* pctxt, ASN1BOOL *pvalue); 00266 00285 EXTERNXER int xerDecCopyBitStr (ASN1CTXT* pctxt, 00286 ASN1OCTET* pvalue, ASN1UINT* pnbits, 00287 ASN1INT bufsize, int lastBitOffset); 00288 00304 EXTERNXER int xerDecCopyDynBitStr (ASN1CTXT* pctxt, 00305 ASN1DynBitStr* pvalue, 00306 int lastBitOffset); 00307 00323 EXTERNXER int xerDecCopyDynOctStr (ASN1CTXT* pctxt, ASN1DynOctStr* pvalue, 00324 int lastBitOffset); 00325 00348 EXTERNXER int xerDecCopyOctStr (ASN1CTXT* pctxt, 00349 ASN1OCTET* pvalue, ASN1UINT* pnocts, 00350 ASN1INT bufsize, int lastBitOffset); 00351 00370 EXTERNXER int xerDecDynAscCharStr (ASN1CTXT* pctxt, 00371 ASN1ConstCharPtr* outdata); 00372 00373 00390 EXTERNXER int xerDecDynBase64Str (ASN1CTXT* pctxt, ASN1DynOctStr* pvalue); 00391 00407 EXTERNXER int xerDecDynBitStr (ASN1CTXT* pctxt, ASN1DynBitStr* pvalue); 00408 00424 EXTERNXER int xerDecDynOctStr (ASN1CTXT* pctxt, ASN1DynOctStr* pvalue); 00425 00445 EXTERNXER int xerDecDynUTF8Str (ASN1CTXT* pctxt, 00446 ASN1UTF8String* outdata); 00447 00458 EXTERNXER int xerDecInt (ASN1CTXT* pctxt, ASN1INT* pvalue); 00459 00470 EXTERNXER int xerDecInt8 (ASN1CTXT* pctxt, ASN1INT8* pvalue); 00471 00482 EXTERNXER int xerDecInt16 (ASN1CTXT* pctxt, ASN1SINT* pvalue); 00483 00496 EXTERNXER int xerDecInt64 (ASN1CTXT* pctxt, ASN1INT64* pvalue); 00497 00510 EXTERNXER int xerDecObjId (ASN1CTXT* pctxt, ASN1OBJID *pvalue); 00511 00525 EXTERNXER int xerDecObjId64 (ASN1CTXT* pctxt, ASN1OID64 *pvalue); 00526 00550 EXTERNXER int xerDecOctStr (ASN1CTXT* pctxt, ASN1OCTET* pvalue, 00551 ASN1UINT* pnocts, ASN1INT bufsize); 00552 00570 EXTERNXER int xerDecOctStrMemBuf (ASN1MemBuf* pMemBuf, 00571 ASN1Const XMLCHAR* inpdata, 00572 int length, ASN1BOOL skipWhitespaces); 00573 00592 EXTERNXER int xerDecOpenType (ASN1CTXT* pctxt, ASN1OpenType* pvalue); 00593 00610 EXTERNXER int xerDecReal (ASN1CTXT* pctxt, ASN1REAL* pvalue); 00611 00624 EXTERNXER int xerDecRelativeOID (ASN1CTXT* pctxt, ASN1OBJID *pvalue); 00625 00637 EXTERNXER int xerDecUInt (ASN1CTXT* pctxt, ASN1UINT* pvalue); 00638 00650 EXTERNXER int xerDecUInt8 (ASN1CTXT* pctxt, ASN1UINT8* pvalue); 00651 00663 EXTERNXER int xerDecUInt16 (ASN1CTXT* pctxt, ASN1USINT* pvalue); 00664 00679 EXTERNXER int xerDecUInt64 (ASN1CTXT* pctxt, ASN1UINT64* pvalue); 00680 00694 EXTERNXER int xerDecUnivStr (ASN1CTXT* pctxt, 00695 ASN1UniversalString* outdata); 00696 00714 EXTERNXER int xerSetDecBufPtr (ASN1CTXT* pCtxt, ASN1ConstOctetPtr bufaddr, 00715 size_t bufsiz); 00716 00719 /* encode functions */ 00765 EXTERNXER int xerSetEncBufPtr (ASN1CTXT* pCtxt, ASN1OCTET* bufaddr, 00766 size_t bufsiz, ASN1BOOL canonical); 00767 00787 EXTERNXER int xerEncAscCharStr (ASN1CTXT* pctxt, 00788 ASN1ConstCharPtr value, 00789 ASN1ConstCharPtr elemName); 00790 00791 00813 EXTERNXER int xerEncBase64Str (ASN1CTXT* pctxt, ASN1UINT nocts, 00814 ASN1ConstOctetPtr data, 00815 ASN1ConstCharPtr elemName); 00816 00841 EXTERNXER int xerEncBigInt (ASN1CTXT* pctxt, ASN1ConstCharPtr value, 00842 ASN1ConstCharPtr elemName); 00843 00868 EXTERNXER int xerEncBitStr (ASN1CTXT* pctxt, ASN1UINT nbits, 00869 ASN1ConstOctetPtr data, 00870 ASN1ConstCharPtr elemName, 00871 ASN1StrType outputType); 00872 00873 EXTERNXER int xerEncBoolValue (ASN1CTXT* pctxt, ASN1BOOL value); 00874 00875 00895 EXTERNXER int xerEncBool (ASN1CTXT* pctxt, ASN1BOOL value, 00896 ASN1ConstCharPtr elemName); 00897 00909 EXTERNXER int xerEncEndDocument (ASN1CTXT* pctxt); 00910 00923 EXTERNXER int xerEncEndElement (ASN1CTXT* pctxt, ASN1ConstCharPtr elemName); 00924 00931 EXTERNXER int xerEncIndent (ASN1CTXT* pctxt); 00932 00952 EXTERNXER int xerEncInt (ASN1CTXT* pctxt, ASN1INT value, 00953 ASN1ConstCharPtr elemName); 00954 00976 EXTERNXER int xerEncInt64 (ASN1CTXT* pctxt, ASN1INT64 value, 00977 ASN1ConstCharPtr elemName); 00978 00979 00991 EXTERNXER int xerEncNewLine (ASN1CTXT* pctxt); 00992 01013 EXTERNXER int xerEncObjId (ASN1CTXT* pctxt, const ASN1OBJID *pvalue, 01014 ASN1ConstCharPtr elemName); 01015 01037 EXTERNXER int xerEncObjId64 (ASN1CTXT* pctxt, const ASN1OID64 *pvalue, 01038 ASN1ConstCharPtr elemName); 01039 01060 EXTERNXER int xerEncRelativeOID (ASN1CTXT* pctxt, const ASN1OBJID *pvalue, 01061 ASN1ConstCharPtr elemName); 01062 01083 EXTERNXER int xerEncOctStr (ASN1CTXT* pctxt, ASN1UINT nocts, 01084 ASN1ConstOctetPtr data, 01085 ASN1ConstCharPtr elemName); 01086 01106 EXTERNXER int xerEncReal (ASN1CTXT* pctxt, ASN1REAL value, 01107 ASN1ConstCharPtr elemName); 01108 01123 EXTERNXER int xerEncStartDocument (ASN1CTXT* pctxt); 01124 01140 EXTERNXER int xerEncStartElement (ASN1CTXT* pctxt, 01141 ASN1ConstCharPtr elemName, 01142 ASN1ConstCharPtr attributes); 01143 01157 EXTERNXER int xerEncEmptyElement (ASN1CTXT* pctxt, 01158 ASN1ConstCharPtr elemName, 01159 ASN1ConstCharPtr attributes); 01175 EXTERNXER int xerEncNamedValue (ASN1CTXT* pctxt, 01176 ASN1ConstCharPtr value, 01177 ASN1ConstCharPtr elemName, 01178 ASN1ConstCharPtr attributes); 01179 01200 EXTERNXER int xerEncUInt (ASN1CTXT* pctxt, ASN1UINT value, 01201 ASN1ConstCharPtr elemName); 01202 01225 EXTERNXER int xerEncUInt64 (ASN1CTXT* pctxt, ASN1UINT64 value, 01226 ASN1ConstCharPtr elemName); 01227 01246 EXTERNXER int xerEncBMPStr (ASN1CTXT* pctxt, 01247 const ASN1BMPString* value, 01248 ASN1ConstCharPtr elemName); 01249 01270 EXTERNXER int xerEncUnivStr (ASN1CTXT* pctxt, 01271 const ASN1UniversalString* value, 01272 ASN1ConstCharPtr elemName); 01273 01291 EXTERNXER int xerEncUniCharData (ASN1CTXT* pctxt, 01292 ASN1Const16BitCharPtr value, 01293 ASN1UINT nchars); 01294 01315 EXTERNXER int xerEncUniCharStr (ASN1CTXT* pctxt, 01316 ASN116BITCHAR* value, 01317 ASN1ConstCharPtr elemName); 01318 01343 EXTERNXER int xerEncOpenType (ASN1CTXT* pctxt, ASN1UINT nocts, 01344 ASN1ConstOctetPtr data, 01345 ASN1ConstCharPtr elemName); 01346 01363 EXTERNXER int xerEncNull (ASN1CTXT* pctxt, ASN1ConstCharPtr elemName); 01364 01365 01366 EXTERNXER int xerEncXmlCharData (ASN1CTXT* pctxt, 01367 ASN1Const XMLCHAR* pvalue, 01368 int length); 01371 /* utility functions */ 01390 EXTERNXER ASN1BOOL xerCmpText (ASN1Const XMLCHAR* text1, ASN1ConstCharPtr text2); 01391 01392 01393 EXTERNXER int xerCopyText (ASN1CTXT* pctxt, ASN1ConstCharPtr text); 01394 01401 EXTERNXER int xerTextLength (ASN1Const XMLCHAR* text); 01402 01416 EXTERNXER ASN1ConstCharPtr xerTextToCStr (ASN1CTXT* pctxt, 01417 ASN1Const XMLCHAR* text); 01418 01425 EXTERNXER size_t xerGetMsgLen (ASN1CTXT* pctxt); 01426 01442 EXTERNXER ASN1OCTET* xerGetMsgPtr (ASN1CTXT* pctxt); 01443 01444 EXTERNXER int xerGetElemIdx (ASN1Const XMLCHAR* elemName, 01445 XerElemInfo* pElemInfo, int numElems); 01446 01447 EXTERNXER int xerGetSeqElemIdx (ASN1Const XMLCHAR* elemName, 01448 XerElemInfo* pElemInfo, 01449 int numElems, int startIndex); 01450 01451 EXTERNXER int xerFinalizeMemBuf (ASN1MemBuf* pMemBuf); 01452 01456 /* XML decode functions */ 01457 01492 EXTERNXER int xmlDecBitStr (ASN1CTXT* pctxt, ASN1OCTET* pvalue, 01493 ASN1UINT* pnbits, ASN1INT bufsize); 01494 01505 EXTERNXER int xmlDecBool (ASN1CTXT* pctxt, ASN1BOOL *pvalue); 01506 01522 EXTERNXER int xmlDecDynBitStr (ASN1CTXT* pctxt, ASN1DynBitStr* pvalue); 01523 01543 EXTERNXER int xmlDecDynNamedBitStr 01544 (ASN1CTXT* pctxt, ASN1DynBitStr* pvalue, 01545 ASN1Const XmlNamedBitsDict* pBitDict); 01546 01562 EXTERNXER int xmlDecDynOctStr (ASN1CTXT* pctxt, ASN1DynOctStr* pvalue); 01563 01582 EXTERNXER int xmlDecGeneralizedTime (ASN1CTXT* pctxt, 01583 ASN1ConstCharPtr* outdata); 01584 01613 EXTERNXER int xmlDecNamedBitStr 01614 (ASN1MemBuf *pMemBuf, ASN1OCTET* pData, int dataSize, ASN1UINT* pNumbits, 01615 ASN1Const XmlNamedBitsDict* pBitDict, 01616 ASN1Const XMLCHAR* chars, int length); 01617 01641 EXTERNXER int xmlDecOctStr (ASN1CTXT* pctxt, ASN1OCTET* pvalue, 01642 ASN1UINT* pnocts, ASN1INT bufsize); 01643 01660 EXTERNXER int xmlDecReal (ASN1CTXT* pctxt, ASN1REAL* pvalue); 01661 01680 EXTERNXER int xmlDecUTCTime (ASN1CTXT* pctxt, 01681 ASN1ConstCharPtr* outdata); 01682 01686 /* XML encode functions */ 01726 EXTERNXER int xmlEncBitStr (ASN1CTXT* pctxt, 01727 XmlNamedBitsDict *namedbits, 01728 ASN1UINT noofnamedbits, 01729 ASN1UINT nbits, 01730 ASN1ConstOctetPtr data, 01731 ASN1ConstCharPtr elemName, 01732 ASN1StrType outputType); 01733 01734 EXTERNXER int xmlEncBoolValue (ASN1CTXT* pctxt, ASN1BOOL value); 01735 01755 EXTERNXER int xmlEncBool (ASN1CTXT* pctxt, ASN1BOOL value, 01756 ASN1ConstCharPtr elemName); 01757 01771 EXTERNXER int xmlEncEnum (ASN1CTXT* pctxt, ASN1ConstCharPtr value); 01772 01792 EXTERNXER int xmlEncGeneralizedTime(ASN1CTXT *pctxt, 01793 ASN1ConstCharPtr value, 01794 ASN1ConstCharPtr elemName); 01795 01811 EXTERNXER int xmlEncNamedValue (ASN1CTXT* pctxt, 01812 ASN1ConstCharPtr value, 01813 ASN1ConstCharPtr elemName, 01814 ASN1ConstCharPtr attributes); 01815 01834 EXTERNXER int xmlEncReal (ASN1CTXT* pctxt, ASN1REAL value, 01835 ASN1ConstCharPtr elemName); 01836 01855 EXTERNXER int xmlEncUTCTime(ASN1CTXT *pctxt, 01856 ASN1ConstCharPtr value, 01857 ASN1ConstCharPtr elemName); 01858 01861 #ifdef __cplusplus 01862 } 01863 #endif 01864 01867 #endif

Copyright © 1997-2004 Objective Systems,Inc.
All Rights Reserved.
This document may be distributed in any form, electronic
or otherwise, provided that it is distributed in its entirety
and that the copyright and this notice are included.

This file was last modified on 1 Oct 2004.
ASN1C XER Runtime, ASN1C v5.7x