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

📄 rvmegacotopology.h

📁 h.248协议源码
💻 H
字号:
/******************************************************************************
Filename   : rvmegacotopology.h
Description: Class for MEGACO Context Topology - 
			 Graph holding terminations and links between them
******************************************************************************
                Copyright (c) 1999 RADVision Inc.
************************************************************************
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.
******************************************************************************
$Revision:$
$Date:11.15.00$
$Author: D.Elbert$
******************************************************************************/
#ifndef RV_MEGACOTOPOLOGY_H
#define RV_MEGACOTOPOLOGY_H

#include "rvtypes.h"
#include "rvgraph.h"
#include "rvalloc.h"
#include "rvmdm.h"

/* Forward declarations */
struct RvMegacoTerm_;
struct RvMegacoMediaStream_;


typedef enum { 
	RV_MEGACOLINKSTATE_TOCONNECT=1,
	RV_MEGACOLINKSTATE_CONNECTED,
	RV_MEGACOLINKSTATE_TODISCONNECT
} RvMegacoLinkState;


/******************************************************************************
	Link class, used for the context graph
******************************************************************************/

typedef struct rvMegacoLink_ {
	RvMdmStreamDirection		direction;
	RvMdmStreamDirection		oldDirection;
/*	RvMegacoLinkState			state;*/
	int                         refCnt;
} RvMegacoLink;

void     rvMegacoLinkConstruct(RvMegacoLink * link);
void     rvMegacoLinkDestruct(RvMegacoLink * link);
void     rvMegacoLinkConstructEx(RvMegacoLink * link,RvMdmStreamDirection direction);
void     rvMegacoLinkSetState(RvMegacoLink * link,RvMegacoLinkState  state);
void	 rvMegacoLinkSetDirection(RvMegacoLink * link,RvMdmStreamDirection direction);

RvMegacoLinkState	 rvMegacoLinkGetState(RvMegacoLink * link);
RvMdmStreamDirection  rvMegacoLinkGetDirection(RvMegacoLink * link);
RvMdmStreamDirection	 rvMegacoLinkGetOldDirection(RvMegacoLink * link);

RvBool	 rvMegacoLinkToUpdate(RvMegacoLink * link);
void	 rvMegacoLinkUpdated(RvMegacoLink * link);

/******************************************************************************
	Topology class, used for the context 
******************************************************************************/

typedef RvGraph RvMegacoTopology;

#define rvMegacoTopologyGetNumNodes(x) rvGraphGetNumNodes(x)

RvMdmStreamDirection rvMegacoTopologyGetLinkDirection(RvMegacoTopology * x,struct RvMegacoTerm_ * source, struct RvMegacoTerm_ * target);
void rvMegacoTopologyCreateLink(RvMegacoTopology * x,struct RvMegacoTerm_ * source, struct RvMegacoTerm_ * target,RvAlloc * alloc) ;

void rvMegacoTopologyRemoveTerm(RvMegacoTopology * x,struct RvMegacoTerm_ * term,RvAlloc * linkAlloc) ;
void rvMegacoTopologyDisconnectTerm(RvMegacoTopology * x,struct RvMegacoTerm_ * term,RvAlloc * linkAlloc);

void rvMegacoTopologyAddTerm(RvMegacoTopology * x,struct RvMegacoTerm_ * term,RvAlloc * linkAlloc) ;
struct RvMegacoTerm_ * rvMegacoTopologyGetTerm(RvMegacoTopology * x,const char * id) ;
RvBool rvMegacoTopologyUpdate(RvMegacoTopology * x,struct RvMegacoTerm_* chooseTerm,const RvMegacoTopologyDescriptor * topology) ;

RvBool rvMegacoTopologyUpdateMediaConnections(RvMegacoTopology * x,struct RvMdmError_ * error);

void rvMegacoTopologyDuplicate(RvMegacoTopology * x,struct RvMegacoTerm_ * orig,struct RvMegacoTerm_ * copy);

void rvMegacoTopologyDisconnectTermMedia(RvMegacoTopology * x,struct RvMegacoTerm_* term,struct RvMegacoMediaStream_ * stream);

RvBool rvMegacoTopologyIsTermPresent(RvMegacoTopology * x,struct RvMegacoTerm_ * ptr);

unsigned int rvMegacoTopologyGetNumTerm(RvMegacoTopology * x);
struct RvMegacoTerm_ * rvMegacoTopologyGetTermByIndex(RvMegacoTopology * x,unsigned int index);

RvBool rvMegacoTopologyConnectNewTerm(RvMegacoTopology * x,struct RvMegacoTerm_  * term,
									  struct RvMegacoTerm_ * chosenTerm,
									  const RvMegacoTopologyDescriptor* topology,
									  RvMegacoCommandReply * commReply,RvAlloc* a);


#endif /* RV_MEGTOPOLOGY_H */

⌨️ 快捷键说明

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