📄 rvremotelog.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 + -