rvmegacotopology.h

来自「h.248协议源码」· C头文件 代码 · 共 102 行

H
102
字号
/******************************************************************************
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 + =
减小字号Ctrl + -
显示快捷键?