📄 psyntree.h
字号:
#ifdef __cplusplusextern "C" {#endif/*
***********************************************************************************
NOTICE:
This document contains information that is proprietary to RADVision LTD..
No part of this publication may be reproduced in any form whatsoever without
written prior approval by RADVision LTD..
RADVision LTD. reserves the right to revise this publication and make changes
without obligation to notify any person of such revisions or changes.
***********************************************************************************
*/
/* psynTree.h Syntax tree interface. Provides access to a single compilation unit of asn modules. Ron S. 31 Oct. 1996 Revised from syntree.h Parameters: - synH: syntax tree handler. - nodeId: id of node in the syntax tree. unique identifier. - node: node information unit. Allocated by user. - child: field under node information unit. Allocated by user. - index: >=1. Notes: - Field names are identical to names in asn text file. The names are NULL terminated. - Output pointer parameters may be null. It means that they are ignored. */#ifndef _PSYNTREE_#define _PSYNTREE_#include <rvcommon.h> typedef enum { /*** Simple types ***/ pstInteger =1, pstNull, pstBoolean, pstEnumeration, pstObjectIdentifier, pstOctetString, /*** Strings ***/ pstBitString, pstGeneralString, pstUniversalString, pstBMPString, pstIA5String, pstVisibleString, pstNumericString, pstPrintableString, /*** Complex types ***/ pstChoice, pstSequence, pstSet, pstOf, pstSequenceOf, pstSetOf } pstNodeType; /* child record type */ typedef struct { int index; /* number of child, starting at 1. ERROR if invalid */ int nodeId; /* child's node id */ INT32 fieldId; /* child's field id */ BOOL isOptional; /* TRUE if the child is optional */ } pstChild; DECLARE_OPAQUE(HPST); /* handler */ RVAPI HPST CALLCONV pstConstruct( IN unsigned char *syntax, /* ASN compiler object output */ IN char *rootName /* syntax tree root name */ ); RVAPI int CALLCONV pstDestruct(HPST synH); RVAPI pstNodeType CALLCONV /* type of node */ pstGetNodeType( IN HPST synH, IN int nodeId ); /* for Sequence Of XXX/Set Of XXX nodes - returns the id of XXX */ RVAPI int CALLCONV pstGetNodeOfId( IN HPST synH, IN int nodeId ); RVAPI int CALLCONV /* type of node */ pstGetNodeRange( IN HPST synH, IN int nodeId, OUT int * from, OUT int * to ); RVAPI INT32 CALLCONV /* Field enumeration or ERROR */ pstGetFieldId( /* convert field name to internal id */ IN HPST synH, IN const char *fieldName /* null terminated string */ ); RVAPI int CALLCONV /* Real length of field name or ERROR */ pstGetFieldName( /* convert field internal id to field name */ IN HPST synH, IN INT32 fieldId, IN int fieldNameLength, /* num. of bytes in string allocation */ OUT char* fieldName /* user allocated */ ); RVAPI int CALLCONV /* actual length of the fromString or ERROR */ pstGetFROMString( /* Get the character constraints of the syntax node */ IN HPST synH, IN int nodeId, IN int fromStringLength, /* num. of bytes in string allocation */ OUT char* fromString /* null terminated. user allocated */ ); RVAPI /*INT32*/int CALLCONV /* Internal node id or ERROR */ pstGetNodeIdByPath( /* get internal node id from specified node path. Path to node should start at root, and correspond to the ASN module syntax structure. */ IN HPST synH, IN const char *path /* format: "a.b.c" */ ); RVAPI int CALLCONV /* the length of the root name or ERROR. */ pstGetRootName( /* note: if bufferLength is smaller than the name length, the correct length is returned, but the buffer will not be valid. */ IN HPST synH, IN int bufferLength, /* target buffer length */ OUT char * buffer /* target buffer for root name */ ); RVAPI int CALLCONV pstGetNumberOfChildren( IN HPST synH, IN int nodeId ); RVAPI int CALLCONV pstGetChild( IN HPST synH, IN int nodeId, /* node id of parent */ IN int childIndex, /* index of child */ OUT pstChild * child ); RVAPI BOOL CALLCONV /* true if node is of one of the string types: */ /* pstObjectIdentifier, pstOctetString, pstBitString, pstGeneralString, pstUniversalString, pstBMPString, pstIA5String, pstVisibleString, pstNumericString, pstPrintableString */ pstIsStringNode( IN HPST synH, IN int nodeId );#endif#ifdef __cplusplus} #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -