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

📄 rvremotelog.h

📁 h.248协议源码
💻 H
字号:
/************************************************************************
 File Name     : rvremotelog.h
 Description   :
*************************************************************************
 Copyright (c)  2001 , RADVision, Inc. All rights reserved.
*************************************************************************
 NOTICE:
 This document contains information that is proprietary to RADVision Inc. 
 No part of this publication may be reproduced in any form whatsoever
 without written prior approval by RADVision Inc. 
 
 RADVision Inc. reserves the right to revise this publication and make
 changes without obligation to notify any person of such revisions or
 changes.
*************************************************************************
 $Revision: $
 $Date:   03/01/2001 $
 $Author: Scott K. Eaton $
************************************************************************/

#if !defined(RVREMOTELOG_H)
#define RVREMOTELOG_H

#include "rvtypes.h"
#include "rvlog.h"
#include "rvsocket.h"
#include "rvmutex.h"
#include "rvsocketaddr.h"
#include "rvsocketselect.h"
#include "rvsocketengine.h"
#include "rvdatabuffer.h"

#ifdef __cplusplus
extern "C" {
#endif

#if (RV_LOGMASK != RV_LOGMASK_NONE)

/***********************************************************************
* RvRemoteLogServer
************************************************************************/
/*$
{type:
	{name: RvRemoteLogMode}
	{superpackage: Util}	
	{include: rvremotelog.h}	
	{description:	
		{p: This enumeration is used to set operation mode for a RvRemoteLogServer.}
 	}
    {enumeration:
        {value: {n: RVREMOTELOG_MODE_BINARY} {d: Run the remote log in binary mode.}}
        {value: {n: RVREMOTELOG_MODE_ASCII } {d: Run the remote log in ascii mode.}}
    }
    {see_also:
        {n: RvRemoteLogServer}
    }
}
$*/
typedef enum 
{
    RVREMOTELOG_MODE_BINARY,
    RVREMOTELOG_MODE_ASCII
} RvRemoteLogMode;
    
/*$
{type:
	{name: RvRemoteLogServer}
	{superpackage: Util}	
	{include: rvremotelog.h}	
	{description:	
		{p: This class is used to send logging data through a socket to remote location.}
 	}
	{methods:
		{method: RvRemoteLogServer* rvRemoteLogServerConstruct(RvRemoteLogServer* thisPtr, RvLog* logPtr, RvLogMask mask, const char *address, int port, RvRemoteLogMode mode);}
		{method: void rvRemoteLogServerDestruct(RvRemoteLogServer* thisPtr);}
	}
    {examples:
        {example:
            {description:
                 {p: This is an example of how to send log information to the internet address
                     196.23.43.2, port 3512, in an ascii format, forwarding all log levels.}
            }
            {code: 
#include "rvlog.h"
#include "rvremotelog.h"

RvRemoteLogServer remoteLog;

rvRemoteLogServerConstruct(&remoteLog, &rvLog, RV_LOGMASK_ALL ,"196.23.43.2", 3512 , RVREMOTELOG_MODE_ASCII);
    
            }
        }
    }
    {see_also:
        {n: RvRemoteLogMode}
    }
}
$*/
typedef struct
{
    RvLogListener    listener;
    RvSocket         socket;
    RvSocketAddr     address;
    RvLog           *logPtr;
    RvRemoteLogMode  mode;
    RvDataBuffer     buffer;

} RvRemoteLogServer;

RvRemoteLogServer* rvRemoteLogServerConstruct(RvRemoteLogServer* thisPtr, RvLog* logPtr, RvLogMask mask, const char *address, int port, RvRemoteLogMode mode);
void rvRemoteLogServerDestruct(RvRemoteLogServer* thisPtr);


/***********************************************************************
* RvRemoteLogClient
************************************************************************/
typedef struct 
{
	RvMutex           mutex;
    RvSocket          socket;
    RvSocketEngine   *socketEnginePtr;
    RvSocketListener  socketListener;
	RvPtrList         listeners;
} RvRemoteLogClient;

RvRemoteLogClient *rvRemoteLogClientConstruct(RvRemoteLogClient *thisPtr, RvSocketEngine *socketEnginePtr, RvSocketAddr *addressPtr);
void rvRemoteLogClientDestruct(RvRemoteLogClient *thisPtr);

void rvRemoteLogClientRegisterListener(RvRemoteLogClient* thisPtr, RvLogListener *listenerPtr);
void rvRemoteLogClientUnregisterListener(RvRemoteLogClient* thisPtr, RvLogListener *listenerPtr);

#else

/***********************************************************************
* RvRemoteLogServer no logging stub
************************************************************************/
typedef struct
{
    RvUint32 dummy;
} RvRemoteLogServer;

#define rvRemoteLogServerConstruct(thisPtr,logPtr,mask, address, port, mode)  (thisPtr)
#define rvRemoteLogServerDestruct(thisPtr);


/***********************************************************************
* RvRemoteLogClient no logging stub
************************************************************************/
typedef struct 
{
    RvUint32 dummy;
} RvRemoteLogClient;

#define rvRemoteLogClientConstruct(thisPtr, socketEnginePtr, addressPtr)  (thisPtr)
#define rvRemoteLogClientDestruct(thisPtr)

#define rvRemoteLogClientRegisterListener(thisPtr,listenerPtr)
#define rvRemoteLogClientUnregisterListener(thisPtr, listenerPtr)

#endif

#ifdef __cplusplus
}
#endif

#endif  // Include guard

⌨️ 快捷键说明

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