亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pvaltree.h

?? RVGatekeeper SIP SDK
?? H
字號:
#ifdef __cplusplus
extern "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.

***********************************************************************************
*/


/*
  pvaltree.h

  Tree manipulation.
  Holds message values according to syntax structure.
  Support multiple messages (trees) within a single instance.

  Ron S. 
  27 Oct. 1996
  Revised from valtree.h

  Global behavior: 
  All functions return ERROR upon illegal paramenters or any other error situation.
  Some functions return TRUE on normal conditions.
  OUT pointer parameters may be NULL if there is no need for them.

  Handlers:
   - HPVT: value tree instance handler.
   - nodeId: single message (tree) identifier.

  Function parameters:
   - parentId: Id of parent node. Unique node identifier.
   - fieldId: enumeration of field as in the message.
   - value: integer value of node.
   - index: of child under parent. >=1
   - path: string description by dotted notation of node location in tree.
          e.g. root.colors.white
  */


#ifndef _PVALTREE_
#define _PVALTREE_


#include <rvcommon.h>
#include <psyntree.h>


#ifdef _EXAMINE_
#define pvtAddRoot(valH, sinH, value, string)  pvtAddRootFrom((valH), (sinH), (value), (string), (char*) __FILE__, __LINE__)
#define pvtAddRootByPath(valH, sinH, path, value, string)  pvtAddRootByPathFrom((valH), (sinH), (path), (value), (string), (char*) __FILE__, __LINE__)
#endif


DECLARE_OPAQUE(HPVT); /* handler */

typedef void (*pvtPrintFuncP)(int type, const char*line, ...); /* print function prototype */


RVAPI HPVT CALLCONV
pvtConstruct(
	     IN  int stringBufferSize, /* max. bytes for string allocation */
	     IN  int numOfNodes /* max number of nodes in tree */
	     );

RVAPI int CALLCONV /* TRUE or ERROR */
pvtDestruct(
	    IN  HPVT valH
	    );



RVAPI int CALLCONV /* root of tree holding the node. */
pvtGetRoot(
	   IN  HPVT valH,
	   IN  int nodeId
	   );

RVAPI HPST CALLCONV /* associated syntax tree handle  */
pvtGetSynTree(
	      IN  HPVT valH,
	      IN  int nodeId
	      );

RVAPI int CALLCONV /* Number of nodes in value tree forest */
pvtCurSize(HPVT valH);


RVAPI int CALLCONV /* Maximum number of used nodes */
pvtMaxUsage(HPVT valH);


RVAPI int CALLCONV /* reset maxUsage value to 0 */
pvtResetMaxUsage(HPVT valH);


RVAPI int CALLCONV
pvtPoolStatistics(
		  /* Get pool statistics (space is in bytes) */
		  IN  HPVT valH,
		  OUT INT32* poolSize, /* max size of pool */
		  OUT INT32* availableSpace, /* current available space */
		  OUT INT32* maxFreeChunk, /* largest free continous space */
		  OUT INT32* numOfChunks /* number of allocation units in pool */
		  );


RVAPI int CALLCONV /* Number of nodes in tree */
pvtTreeSize(
	    IN  HPVT valH,
	    IN  int parentId
	    );

RVAPI int CALLCONV /* number of childs for parent */
pvtNumChilds(
	     IN  HPVT valH,
	     IN  int parentId
	     );

RVAPI int CALLCONV /* id of parent node of nodeId */
pvtParent(
	  IN  HPVT valH, 
	  IN  int nodeId
	  );

RVAPI int CALLCONV /* next brother id (right) of nodeId */
pvtBrother(
	   IN  HPVT valH,
	   IN  int nodeId
	   );

RVAPI int CALLCONV /* prev brother id (left) of nodeId, or -1 */
pvtLBrother(
	   IN  HPVT valH,
	   IN  int nodeId
	   );

RVAPI int CALLCONV /* child node id or ERROR */
pvtChild(
	 /* return first (leftmost) child node id */
	 IN  HPVT valH,
	 IN  int parentId
	 );

RVAPI int CALLCONV /* node id or ERROR when travel completed */
pvtNext(
	/* return the next node id after location */
	IN  HPVT valH,
	IN  int rootId,
	IN  int location
	);



#ifdef _EXAMINE_

RVAPI int CALLCONV /* new node id or ERROR */
pvtAddRootFrom(
	       /* Add new tree in forest (new message nodeId) */ 
	       IN  HPVT valH,
	       IN  HPST synH,
	       IN  INT32 value, /* if string exists ==> size of string */
	       IN  const char* string, /* NULL if no string */
	       IN  char *fileName,
	       IN  int lineno
	       );


RVAPI int CALLCONV /* new root id or ERROR */
pvtAddRootByPathFrom(
		     /* Add new tree in forest (new message nodeId) */ 
		     IN  HPVT valH,
		     IN  HPST synH,
		     IN  char* syntaxPath, /* path to node from sytax tree root */
		     IN  INT32 value, /* if string exists ==> size of string */
		     IN  char* string, /* NULL if no string */
		     IN  char *fileName,
		     IN  int lineno
		     );
  
#else

RVAPI int CALLCONV /* new node id or ERROR */
pvtAddRoot(
	   /* Add new tree in forest (new message nodeId) */ 
	   IN  HPVT valH,
	   IN  HPST synH,
	   IN  INT32 value, /* if string exists ==> size of string */
	   IN  const char* string /* NULL if no string */
	   );


RVAPI int CALLCONV /* new root id or ERROR */
pvtAddRootByPath(
		 /* Add new tree in forest (new message nodeId) */ 
		 IN  HPVT valH,
		 IN  HPST synH,
		 IN  char* syntaxPath, /* path to node from sytax tree root */
		 IN  INT32 value, /* if string exists ==> size of string */
		 IN  char* string /* NULL if no string */
		 );
#endif



RVAPI int CALLCONV /* new path or ERROR */
pvtAdd(
       /* 
	  Add child node under parentId. 
	  The new node is placed in its relative position according to syntax tree
	  indexing of SEQUENCE fields of structure. 
	  */
       IN  HPVT valH,
       IN  int parentId,
       IN  INTPTR fieldId, /* -1 ==> copy from parent node */
       IN  INT32 value, /* if string exists ==> size of string */
       IN  const char* string, /* NULL if no string. string is allocated and stored in pvt */
       OUT int* index /* index of the new child */
       );


RVAPI int CALLCONV /* TRUE or ERROR */
pvtAddTree(
	   /* Add sub-tree UNDER parent. */
	   IN  HPVT destH,
	   IN  int parentId,
	   IN  HPVT srcH,
	   IN  int rootId /* root of sub-tree to add */
	   );

RVAPI int CALLCONV /* TRUE or ERROR */
pvtAddChilds(
	     /* Add childs of rootId sub-tree UNDER parent. */
	     IN  HPVT destH,
	     IN  int parentId,
	     IN  HPVT srcH,
	     IN  int rootId /* root of sub-tree to add */
	     );

RVAPI int CALLCONV /* TRUE or ERROR */
pvtDelete(
	  /* delete sub-tree */
	  IN  HPVT valH,
	  IN  int subTreeRootId
	  );

RVAPI int CALLCONV /* TRUE or ERROR */
pvtDeleteChilds(
		/* delete all childs of root */
		IN  HPVT valH,
		IN  int subTreeRootId
		);

RVAPI int CALLCONV
pvtDeleteAll(
	     /* delete all nodes in value tree */
	     IN  HPVT valH
	     );


RVAPI int CALLCONV /* TRUE or ERROR */
pvtSetTree(
	   /* Add sub-tree ON parent overwriting parent tree. */
	   IN  HPVT destH,
	   IN  int parentId,
	   IN  HPVT srcH,
	   IN  int rootId /* root of sub-tree to set */
	   );

RVAPI int CALLCONV /* TRUE or ERROR */
pvtMoveTree(
	    /* move sub-tree to another sub-tree */
	    IN  HPVT destH,
	    IN  int destRootId, /* destination root (overwritten) */
	    IN  int srcRootId /* root of sub-tree to move from */
	    );

RVAPI int CALLCONV /* TRUE or ERROR */
pvtShiftTree(
	     /* move sub-tree to another sub-tree and keep src root id */
	     IN  HPVT destH,
	     IN  int destRootId, /* destination root (overwritten) */
	     IN  int srcRootId /* root of sub-tree to move from */
	     );

RVAPI int CALLCONV /* TRUE or ERROR */
pvtAdoptChild(
	     /* Child is adopted by its new family. new brother is a child of new parent. 
		No validity checks. */
	     IN  HPVT valH,
	     IN  int adoptedChildId, /* child to be adopted by the new family */
	     IN  int newParentId, /* parent of adopted child. -1: become root */
	     IN  int newBrotherId /* previously born child (left brother). -1: first born */
	     );

RVAPI int CALLCONV
pvtGet(
       /* get node values */
       IN  HPVT valH,
       IN  int nodeId,
       OUT INTPTR* fieldId, /* Enumeration of field */
       OUT int* synNodeId, /* correlated syntax node */
       OUT INT32* value, /* int value or length of string */
       OUT BOOL* isString /* true if node contains a string (value is its length). 
			    see pvtGetString() */
       ); 

RVAPI INT32 CALLCONV /* real string length or ERROR */
pvtGetString(
	     /* get node string. Ignore if no string available (returns ERROR) */
	     IN  HPVT valH,
	     IN  int nodeId,
	     IN  INT32 stringLength, /* length of string array */
	     OUT char* string /* user allocated memory to hold string */
	     ); 

RVAPI INT32 CALLCONV /* real string length in bits or ERROR */
pvtGetBitString(
	     /* get node string. Ignore if no string available (returns ERROR) */
	     IN  HPVT valH,
	     IN  int nodeId,
	     IN  INT32 stringLength, /* length of string array */
	     OUT char* string /* user allocated memory to hold string */
	     );

RVAPI int CALLCONV
pvtSet(
       /* Set values of existing node (nodeId) */
       IN  HPVT valH,
       IN  int nodeId,
       IN  INTPTR fieldId,
       IN  INT32 value, /* if string exists ==> size of string */
       IN  const char* string /* NULL if no string. string is allocated and stored in pvt */
       );

RVAPI int CALLCONV /* child node id or ERROR */
pvtGetChild(
	    /* get id of child by fieldId */
	    IN  HPVT valH,
	    IN  int parentId,
	    IN  INTPTR fieldId, /* key */
	    OUT int* childNodeId
	    );

RVAPI int CALLCONV /* child node id or ERROR */
pvtGetByIndex(
	      /* get id of child by index */
	      IN  HPVT valH,
	      IN  int parentId,
	      IN  INT32 index, /* of child. >=1 */
	      OUT int* childNodeId
	      );

RVAPI int CALLCONV /* index of node or ERROR */
pvtGetSyntaxIndex(
		  /* get the index of node in parent syntax structure */
		  IN  HPVT valH,
		  IN  int nodeId
		  );

RVAPI int CALLCONV /* TRUE if found, FALSE if not, or ERROR */
pvtSearchPath(
	      /* Search for src path in dest tree.
		 indexing is set to value field on sequence-of nodes in src tree. */
	      IN  HPVT destH,
	      IN  int rootNodeId, /* root of search */
	      IN  HPVT srcH,
	      IN  int srcNodeId, /* beginning of path to search */
	      IN  BOOL checkLeaves /* TRUE: compare leave values, FALSE: do not compare */
	      );

#ifndef NOLOGSUPPORT
RVAPI int CALLCONV
pvtPrint(
	 /* print a tree from parent id */
	 IN  HPVT valH,
	 IN  int parentId,
	 IN  pvtPrintFuncP pFunc, /* print function */
	 IN  int pFuncParam /* parameter for print function */
	 );

RVAPI int CALLCONV
pvtPrintStd(
	 /* print a tree from parent id */
	 IN  HPVT valH,
	 IN  int parentId,
	 IN  int pFuncParam /* parameter for print function */
	 );
#else
#define pvtPrint(a,b,c,d)
#define pvtPrintStd(a,b,c)
#endif
/*---------------------- by path operations ------------------------ */

RVAPI int CALLCONV /* node id or ERROR */
pvtGetNodeIdByPath(
		   /* get node id corresponding to path from the search root node id */
		   IN  HPVT valH,
		   IN  int searchRootNodeId,
		   IN  const char *path  /* from search root. format: "a.b.c" */
		   );

RVAPI int CALLCONV
pvtSetByPath(
	     /*Set node value by its path. The node should already exist. */
	     IN  HPVT valH,
	     IN  int rootId,
	     IN  const char *path,
	     IN  INT32 value,
	     IN  const char* string
	     );

RVAPI int CALLCONV /* last build nodeId or ERROR */
pvtBuildByPath(
	       /*
		 Desc: Set a node in value tree by its path (string).
		 Note: Each node in the path is created if not exist.
		 - Field names in the path should match syntax tree values.
		 - Fields are separated by '.'
		 */
	       IN  HPVT valH,
	       IN  int rootNodeId, /* root node of tree to build */
	       IN  const char *path, /* NULL terminated string. "field.field.field" */
	       IN  INT32 value,  /* length of data if data not NULL */
	       IN  const char* data  /* NULL if no data */
	       );

RVAPI int CALLCONV /* tag of 'relation' child of vNodeId */
pvtGetChildTagByPath(
		     IN  HPVT valH,
		     IN  int nodeId,
		     IN  const char *path, /* from vNodeId */
		     IN  int relation  /* number of descenders from vNodeId */
		     );

RVAPI int CALLCONV /* nodeId or ERROR */
pvtGetByPath(
	     IN  HPVT valH,
	     IN  int nodeId,
	     IN  const char *path,
	     OUT INTPTR* fieldId, /* Enumeration of field */
	     OUT INT32* value,  /* int value or length of string */
	     OUT BOOL* isString /* true if node contains a string (value is its length). 
				   see pvtGetString() */
	     );



#endif
#ifdef __cplusplus
}              
#endif



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女久久久久高潮| 欧美一区二区三区四区久久| 欧美精三区欧美精三区| 精品对白一区国产伦| 中文字幕亚洲区| 日本免费新一区视频| 国产成人av电影在线播放| 欧美三级乱人伦电影| 欧美一区二区三区视频在线观看| 国产午夜精品在线观看| 亚洲日本免费电影| 极品少妇xxxx精品少妇偷拍| 91啪亚洲精品| 精品国产自在久精品国产| 亚洲色图在线播放| 麻豆成人av在线| 91啦中文在线观看| 精品少妇一区二区三区在线播放| 亚洲丝袜美腿综合| 久久不见久久见免费视频7| 一本色道综合亚洲| 久久婷婷成人综合色| 亚洲国产精品一区二区久久恐怖片 | 亚洲一区二区三区中文字幕| 精品一区二区三区免费视频| 色狠狠一区二区三区香蕉| 久久先锋影音av| 日一区二区三区| 99re热这里只有精品免费视频| 精品免费国产一区二区三区四区| 一二三区精品视频| 丰满白嫩尤物一区二区| 欧美一二三区在线观看| 亚洲免费在线播放| 国产suv一区二区三区88区| 欧美精品v国产精品v日韩精品| 国产精品国产三级国产aⅴ中文 | 亚洲精品一区二区三区99| 亚洲综合在线视频| 国产91精品入口| 7777精品久久久大香线蕉| 亚洲激情图片一区| 国产成人午夜片在线观看高清观看| 91精品国产全国免费观看| 亚洲伊人色欲综合网| 99久久精品情趣| 国产精品系列在线| 国产精品一区免费视频| 日韩欧美黄色影院| 日韩激情一二三区| 国产清纯白嫩初高生在线观看91 | 精品一区二区在线免费观看| 欧美日免费三级在线| 亚洲男同性恋视频| av亚洲精华国产精华精华| 精品久久久久久综合日本欧美| 日韩中文欧美在线| 在线播放欧美女士性生活| 亚洲成年人影院| 欧美三级在线看| 亚洲成va人在线观看| 欧美日韩在线三级| 亚洲午夜精品17c| 欧美日韩一区在线观看| 亚洲一卡二卡三卡四卡五卡| 91传媒视频在线播放| 亚洲精品第一国产综合野| 99久久精品免费| 亚洲免费在线视频| 色婷婷久久综合| 亚洲国产成人91porn| 欧美日韩高清一区| 日韩极品在线观看| 日韩精品一区在线观看| 国模大尺度一区二区三区| 久久网这里都是精品| 国产suv精品一区二区883| 国产精品二三区| 91看片淫黄大片一级在线观看| 亚洲日本中文字幕区| 欧美色图免费看| 老司机午夜精品| 久久久综合激的五月天| 国产成人免费高清| 国产精品成人一区二区艾草 | 亚洲中国最大av网站| 欧美在线视频全部完| 亚洲va欧美va人人爽| 91精品久久久久久蜜臀| 日韩不卡一区二区| www亚洲一区| 成人短视频下载| 一级日本不卡的影视| 6080yy午夜一二三区久久| 久草中文综合在线| 日本一二三四高清不卡| 91小宝寻花一区二区三区| 午夜伦理一区二区| 久久免费偷拍视频| 91免费国产在线观看| 亚洲成av人片一区二区梦乃 | 国产大片一区二区| 国产精品成人在线观看| 精品视频一区二区三区免费| 美日韩一区二区| 国产精品麻豆视频| 欧美高清一级片在线| 精品亚洲国产成人av制服丝袜| 亚洲国产高清aⅴ视频| 欧美专区日韩专区| 韩国女主播成人在线| 亚洲视频在线观看三级| 91精品国产综合久久精品麻豆| 国产一区二区三区国产| 亚洲免费观看高清完整| 日韩一区二区三区在线| proumb性欧美在线观看| 天天综合色天天| 中文字幕av不卡| 欧美丰满高潮xxxx喷水动漫| 成人av资源网站| 秋霞成人午夜伦在线观看| 国产精品久久久久久久久免费桃花| 欧美人妇做爰xxxⅹ性高电影| 成人午夜看片网址| 三级精品在线观看| 亚洲天堂福利av| 久久久久久97三级| 欧美伦理影视网| 91香蕉视频在线| 国产毛片一区二区| 日韩成人一区二区三区在线观看| 国产精品美女久久久久高潮| 日韩欧美国产一二三区| 日本丶国产丶欧美色综合| 国产原创一区二区| 五月综合激情网| 中文字幕一区二区三区在线观看| 日韩精品影音先锋| 欧美日韩一区二区在线观看视频| 风流少妇一区二区| 久久99精品久久久久久国产越南 | 欧美精品aⅴ在线视频| av资源网一区| 国产剧情一区二区| 日本欧美大码aⅴ在线播放| 亚洲精品乱码久久久久久黑人| 久久综合999| 日韩一级高清毛片| 欧美日韩一区二区三区高清| 91在线一区二区三区| 国产丶欧美丶日本不卡视频| 男女视频一区二区| 偷拍与自拍一区| 一区二区三区免费观看| 1区2区3区精品视频| 亚洲国产激情av| 国产三区在线成人av| 日韩一级片在线播放| 69久久夜色精品国产69蝌蚪网| 在线日韩一区二区| 91视频xxxx| 99v久久综合狠狠综合久久| 成人免费视频播放| 岛国精品在线播放| 国产精品一区二区三区99| 精品亚洲欧美一区| 美女视频一区在线观看| 日韩精品一卡二卡三卡四卡无卡| 亚洲午夜国产一区99re久久| 亚洲免费观看在线视频| 亚洲欧美一区二区在线观看| 国产人妖乱国产精品人妖| 久久久久久夜精品精品免费| 久久综合九色综合欧美98| 精品国产一区二区三区久久久蜜月| 日韩一区二区在线观看视频| 日韩欧美不卡在线观看视频| 日韩女优电影在线观看| 精品人伦一区二区色婷婷| 日韩精品中文字幕在线一区| 精品久久久久一区| 国产亚洲精品aa午夜观看| 久久精品网站免费观看| 国产人久久人人人人爽| 中文字幕av一区二区三区| 亚洲欧洲日产国产综合网| 亚洲欧美区自拍先锋| 亚洲一二三区在线观看| 日韩国产欧美在线视频| 久久福利视频一区二区| 精品亚洲porn| 高清不卡一区二区在线| 成人国产亚洲欧美成人综合网| 97se亚洲国产综合自在线| 91麻豆swag| 7777精品伊人久久久大香线蕉经典版下载 | 久久久精品欧美丰满| 国产精品天干天干在观线| 成人欧美一区二区三区|