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

📄 rvmegacoobjects.h

📁 h.248协议源码
💻 H
📖 第 1 页 / 共 5 页
字号:
rvDeclareMap(RvMegacoPackageItem, RvMegacoParameterValue)


typedef void (*RvMegacoParameterFunc)(const RvMegacoPackageItem *name, const RvMegacoParameterValue *value, void *data);

/*$
{type:
	{name: RvMegacoParameterList}
	{include: rvmegacoobjects.h}
	{description: {p: A list of parameters.}}
	{methods:
		{method: RvMegacoParameterList *rvMegacoParameterListConstruct(RvMegacoParameterList *x);}
		{method: RvMegacoParameterList *rvMegacoParameterListConstructA(RvMegacoParameterList *x, RvAlloc *alloc);}
		{method: RvMegacoParameterList *rvMegacoParameterListConstructCopy(RvMegacoParameterList *d, const RvMegacoParameterList *s, RvAlloc *alloc);}
		{method: void rvMegacoParameterListDestruct(RvMegacoParameterList *x);}
		{method: RvMegacoParameterList *rvMegacoParameterListCopy(RvMegacoParameterList *d, const RvMegacoParameterList *s);}
		{method: void rvMegacoParameterListSet(RvMegacoParameterList *x, const RvMegacoPackageItem *name, const RvMegacoParameterValue *value);}
		{method: const RvMegacoParameterValue *rvMegacoParameterListGet(const RvMegacoParameterList *x, const RvMegacoPackageItem *name);}
		{method: void rvMegacoParameterListForEach(const RvMegacoParameterList *x, RvMegacoParameterFunc f, void *data);}
		{method: RvBool rvMegacoParameterListIsEmpty(const RvMegacoParameterList *x);}
	}
}
$*/

typedef struct
{
	RvMap(RvMegacoPackageItem, RvMegacoParameterValue) list;
} RvMegacoParameterList;

RvMegacoParameterList *rvMegacoParameterListConstruct(RvMegacoParameterList *x);
RvMegacoParameterList *rvMegacoParameterListConstructA(RvMegacoParameterList *x, RvAlloc *alloc);
RvMegacoParameterList *rvMegacoParameterListConstructCopy(RvMegacoParameterList *d, const RvMegacoParameterList *s, RvAlloc *alloc);
void rvMegacoParameterListDestruct(RvMegacoParameterList *x);
RvMegacoParameterList *rvMegacoParameterListCopy(RvMegacoParameterList *d, const RvMegacoParameterList *s);
void rvMegacoParameterListSet(RvMegacoParameterList *x, const RvMegacoPackageItem *name, const RvMegacoParameterValue *value);
void rvMegacoParameterListSet2(RvMegacoParameterList *x, const char *name, const RvMegacoParameterValue *value);
void rvMegacoParameterListAnd(RvMegacoParameterList *x, const RvMegacoPackageItem *name, const char *value);
void rvMegacoParameterListOr(RvMegacoParameterList *x, const RvMegacoPackageItem *name, const char *value);
const RvMegacoParameterValue *rvMegacoParameterListGet(const RvMegacoParameterList *x, const RvMegacoPackageItem *name);
const RvMegacoParameterValue *rvMegacoParameterListGet2(const RvMegacoParameterList *x, const char *name);
unsigned int rvMegacoParameterListGetSize(const RvMegacoParameterList *x);
void rvMegacoParameterListForEach(const RvMegacoParameterList *x, RvMegacoParameterFunc f, void *data);
RvBool rvMegacoParameterListIsEmpty(const RvMegacoParameterList *x);
void rvMegacoParameterListMerge(RvMegacoParameterList* x,const RvMegacoParameterList* source);

/*$
{type:
	{name: RvMegacoDigitPositionTimerMode}
	{include: rvmegacoobjects.h}
	{description: 
		{p: Used to override normal digit map timer processing:}
		{p: RV_MEGACODIGITPOSITION_NOCHANGE - normal processing.}
		{p: RV_MEGACODIGITPOSITION_SHORTTIMER - use short timer from now on.}
		{p: RV_MEGACODIGITPOSITION_LONGTIMER - use long timer from now on.}
	}
}
$*/

typedef enum 
{
	RV_MEGACODIGITPOSITION_NOCHANGE,
	RV_MEGACODIGITPOSITION_SHORTTIMER,
	RV_MEGACODIGITPOSITION_LONGTIMER
} RvMegacoDigitPositionTimerMode;


/*$
{type:
	{name: RvMegacoDigitPosition}
	{include: rvmegacoobjects.h}
	{description: {p: Holds the events to be matched at one point in time during dialing.}}
	{methods:
		{method: RvMegacoDigitPosition *rvMegacoDigitPositionConstruct(RvMegacoDigitPosition *x);}
		{method: RvMegacoDigitPosition *rvMegacoDigitPositionConstructCopy(RvMegacoDigitPosition *d, const RvMegacoDigitPosition *s);}
		{method: void rvMegacoDigitPositionDestruct(RvMegacoDigitPosition *x);}
		{method: RvMegacoDigitPosition *rvMegacoDigitPositionCopy(RvMegacoDigitPosition *d, const RvMegacoDigitPosition *s);}
		{method: void rvMegacoDigitPositionAddEvents(RvMegacoDigitPosition *x, char c1, char c2);}
		{method: void rvMegacoDigitPositionSetMultipleFlag(RvMegacoDigitPosition *x, RvBool enable);}
		{method: void rvMegacoDigitPositionSetLongDurationFlag(RvMegacoDigitPosition *x, RvBool enable);}
		{method: void rvMegacoDigitPositionSetTimerMode(RvMegacoDigitPosition *x, RvMegacoDigitPositionTimerMode mode);}
		{method: int rvMegacoDigitPositionGetEvents(const RvMegacoDigitPosition *x);}
		{method: RvBool rvMegacoDigitPositionIsMultiple(const RvMegacoDigitPosition *x);}
		{method: RvBool rvMegacoDigitPositionGetLongDurationFlag(const RvMegacoDigitPosition *x);}
		{method: RvMegacoDigitPositionTimerMode rvMegacoDigitPositionGetTimerMode(const RvMegacoDigitPosition *x);}
	}
}
$*/
typedef struct
{
	int events;
	RvBool multiple;
	RvBool longDuration;
	RvMegacoDigitPositionTimerMode timerMode;
} RvMegacoDigitPosition;

RvMegacoDigitPosition *rvMegacoDigitPositionConstruct(RvMegacoDigitPosition *x);

/*$
{function:
	{name: rvMegacoDigitPositionConstructCopy}
	{class: RvMegacoDigitPosition}
	{include: rvmegacoobjects.h}
	{description:
		{p: Constructs a copy of a digit position object.}
	}
	{proto: RvMegacoDigitPosition *rvMegacoDigitPositionConstructCopy(RvMegacoDigitPosition *d, const RvMegacoDigitPosition *s, RvAlloc *alloc);}
	{params:
		{param: {n:d} {d:The destination digit position object.}}
		{param: {n:s} {d:The digit position object to copy.}}
		{param: {n:alloc} {d:The allocator to use.}}
	}
	{returns: A pointer to the constructed object, or NULL if construction failed.}
}
$*/
#define rvMegacoDigitPositionConstructCopy rvDefaultConstructCopy

/*$
{function:
	{name: rvMegacoDigitPositionDestruct}
	{class: RvMegacoDigitPosition}
	{include: rvmegacoobjects.h}
	{description:
		{p: Destroys a digit position object.}
	}
	{proto: void rvMegacoDigitPositionDestruct(RvMegacoDigitPosition *x);}
	{params:
		{param: {n:x} {d:The digit position object.}}
	}
}
$*/
#define rvMegacoDigitPositionDestruct rvDefaultDestruct

/*$
{function:
	{name: rvMegacoDigitPositionCopy}
	{class: RvMegacoDigitPosition}
	{include: rvmegacoobjects.h}
	{description:
		{p: Copies the value of one digit position object to another.}
	}
	{proto: RvMegacoDigitPosition *rvMegacoDigitPositionCopy(RvMegacoDigitPosition *d, const RvMegacoDigitPosition *s);}
	{params:
		{param: {n:d} {d:The destination digit position object.}}
		{param: {n:s} {d:The digit position object to copy.}}
	}
	{returns: A pointer to the destination object, or NULL if the copy failed.}
}
$*/
#define rvMegacoDigitPositionCopy rvDefaultCopy

void rvMegacoDigitPositionAddEvents(RvMegacoDigitPosition *x, char c1, char c2);
void rvMegacoDigitPositionSetMultipleFlag(RvMegacoDigitPosition *x, RvBool enable);
void rvMegacoDigitPositionSetLongDurationFlag(RvMegacoDigitPosition *x, RvBool enable);
void rvMegacoDigitPositionSetTimerMode(RvMegacoDigitPosition *x, RvMegacoDigitPositionTimerMode mode);
int rvMegacoDigitPositionGetEvents(const RvMegacoDigitPosition *x);
RvBool rvMegacoDigitPositionIsMultiple(const RvMegacoDigitPosition *x);
RvBool rvMegacoDigitPositionGetLongDurationFlag(const RvMegacoDigitPosition *x);
RvMegacoDigitPositionTimerMode rvMegacoDigitPositionGetTimerMode(const RvMegacoDigitPosition *x);


rvDeclareVector(RvMegacoDigitPosition)


/*$
{type:
	{name: RvMegacoDigitString}
	{include: rvmegacoobjects.h}
	{description: {p: Holds one possible dialing pattern in a dialing plan.}}
	{methods:
		{method: RvMegacoDigitString *rvMegacoDigitStringConstruct(RvMegacoDigitString *x);}
		{method: RvMegacoDigitString *rvMegacoDigitStringConstructA(RvMegacoDigitString *x, RvAlloc *alloc);}
		{method: RvMegacoDigitString *rvMegacoDigitStringConstructCopy(RvMegacoDigitString *d, const RvMegacoDigitString *s, RvAlloc *alloc);}
		{method: void rvMegacoDigitStringDestruct(RvMegacoDigitString *x);}
		{method: RvMegacoDigitString *rvMegacoDigitStringCopy(RvMegacoDigitString *d, const RvMegacoDigitString *s);}
		{method: void rvMegacoDigitStringAddElement(RvMegacoDigitString *x, const RvMegacoDigitPosition *pos);}
		{method: void rvMegacoDigitStringClear(RvMegacoDigitString *x);}
		{method: size_t rvMegacoDigitStringGetSize(const RvMegacoDigitString *x);}
		{method: const RvMegacoDigitPosition *rvMegacoDigitStringGetElem(const RvMegacoDigitString *x, size_t index);}
	}
}
$*/

typedef struct
{
	RvVector(RvMegacoDigitPosition) elements;
} RvMegacoDigitString;

RvMegacoDigitString *rvMegacoDigitStringConstruct(RvMegacoDigitString *x);
RvMegacoDigitString *rvMegacoDigitStringConstructA(RvMegacoDigitString *x, RvAlloc *alloc);
RvMegacoDigitString *rvMegacoDigitStringConstructCopy(RvMegacoDigitString *d, const RvMegacoDigitString *s, RvAlloc *alloc);
void rvMegacoDigitStringDestruct(RvMegacoDigitString *x);
RvMegacoDigitString *rvMegacoDigitStringCopy(RvMegacoDigitString *d, const RvMegacoDigitString *s);
void rvMegacoDigitStringAddElement(RvMegacoDigitString *x, const RvMegacoDigitPosition *pos);
void rvMegacoDigitStringClear(RvMegacoDigitString *x);
size_t rvMegacoDigitStringGetSize(const RvMegacoDigitString *x);
const RvMegacoDigitPosition *rvMegacoDigitStringGetElem(const RvMegacoDigitString *x, size_t index);


extern const unsigned int rvMegacoDigitMapDefaultStartTimeout;
extern const unsigned int rvMegacoDigitMapDefaultShortTimeout;
extern const unsigned int rvMegacoDigitMapDefaultLongTimeout;


/*$
{type:
	{name: RvMegacoDigitMapMatchType}
	{include: rvmegacoobjects.h}
	{description: 
		{p: Status of dialed digits with respect to a digit map:}
		{p: RV_MEGACODIGITMAP_NOMATCH - no patterns will be matched.}
		{p: RV_MEGACODIGITMAP_PARTIALMATCH - no patterns are matched yet, but some are still possible.}
		{p: RV_MEGACODIGITMAP_FULLMATCH - at least one pattern is matched, others are still possible.}
		{p: RV_MEGACODIGITMAP_UNAMBIGUOUSMATCH. - exactly one pattern is matched, no more are possible.}
	}
	{notes:
		{note: see rvMegacoDigitMapMatch().}
	}
}
$*/

typedef enum
{
	RV_MEGACODIGITMAP_NOMATCH,
	RV_MEGACODIGITMAP_PARTIALMATCH,
	RV_MEGACODIGITMAP_FULLMATCH,
	RV_MEGACODIGITMAP_UNAMBIGUOUSMATCH
} RvMegacoDigitMapMatchType;

rvDeclareVector(RvMegacoDigitString)


/*$
{type:
	{name: RvMegacoDigitMap}
	{include: rvmegacoobjects.h}
	{description: {p: Holds a dialing plan.}}
	{methods:
		{method: RvMegacoDigitMap *rvMegacoDigitMapConstruct(RvMegacoDigitMap *x);}
		{method: RvMegacoDigitMap *rvMegacoDigitMapConstructA(RvMegacoDigitMap *x, RvAlloc *alloc);}
		{method: RvMegacoDigitMap *rvMegacoDigitMapConstructCopy(RvMegacoDigitMap *d, const RvMegacoDigitMap *s, RvAlloc *alloc);}
		{method: void rvMegacoDigitMapDestruct(RvMegacoDigitMap *x);}
		{method: RvMegacoDigitMap *rvMegacoDigitMapCopy(RvMegacoDigitMap *d, const RvMegacoDigitMap *s);}
		{method: void rvMegacoDigitMapAddPattern(RvMegacoDigitMap *x, const RvMegacoDigitString *s);}
		{method: void rvMegacoDigitMapClear(RvMegacoDigitMap *x);}
		{method: void rvMegacoDigitMapSetStartTimeout(RvMegacoDigitMap *x, unsigned int val);}
		{method: void rvMegacoDigitMapSetShortTimeout(RvMegacoDigitMap *x, unsigned int val);}
		{method: void rvMegacoDigitMapSetLongTimeout(RvMegacoDigitMap *x, unsigned int val);}
		{method: size_t rvMegacoDigitMapGetSize(const RvMegacoDigitMap *x);}
		{method: const RvMegacoDigitString *rvMegacoDigitMapGetElem(const RvMegacoDigitMap *x, size_t index);}
		{method: unsigned int rvMegacoDigitMapGetStartTimeout(const RvMegacoDigitMap *x);}
		{method: unsigned int rvMegacoDigitMapGetShortTimeout(const RvMegacoDigitMap *x);}
		{method: unsigned int rvMegacoDigitMapGetLongTimeout(const RvMegacoDigitMap *x);}
		{method: RvMegacoDigitMapMatchType rvMegacoDigitMapMatch(const RvMegacoDigitMap *x, const char *dialString, unsigned int *timerDuration);}
	}
}
$*/

typedef struct
{
	RvVector(RvMegacoDigitString) patterns;
	unsigned int startTimeout, shortTimeout, longTimeout;
} RvMegacoDigitMap;

RvMegacoDigitMap *rvMegacoDigitMapConstruct(RvMegacoDigitMap *x);
RvMegacoDigitMap *rvMegacoDigitMapConstructA(RvMegacoDigitMap *x, RvAlloc *alloc);
RvMegacoDigitMap *rvMegacoDigitMapConstructCopy(RvMegacoDigitMap *d, const RvMegacoDigitMap *s, RvAlloc *alloc);
void rvMegacoDigitMapDestruct(RvMegacoDigitMap *x);
RvMegacoDigitMap *rvMegacoDigitMapCopy(RvMegacoDigitMap *d, const RvMegacoDigitMap *s);
void rvMegacoDigitMapAddPattern(RvMegacoDigitMap *x, const RvMegacoDigitString *s);
void rvMegacoDigitMapClear(RvMegacoDigitMap *x);
void rvMegacoDigitMapSetStartTimeout(RvMegacoDigitMap *x, unsigned int val);
void rvMegacoDigitMapSetShortTimeout(RvMegacoDigitMap *x, unsigned int val);
void rvMegacoDigitMapSetLongTimeout(RvMegacoDigitMap *x, unsigned int val);
size_t rvMegacoDigitMapGetSize(const RvMegacoDigitMap *x);
const RvMegacoDigitString *rvMegacoDigitMapGetElem(const RvMegacoDigitMap *x, size_t index);
unsigned int rvMegacoDigitMapGetStartTimeout(const RvMegacoDigitMap *x);
unsigned int rvMegacoDigitMapGetShortTimeout(const RvMegacoDigitMap *x);
unsigned int rvMegacoDigitMapGetLongTimeout(const RvMegacoDigitMap *x);
RvMegacoDigitMapMatchType rvMegacoDigitMapMatch(const RvMegacoDigitMap *x, const char *dialString, unsigned int *timerDuration);


⌨️ 快捷键说明

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