1/* 2 * Author: William Chia-Wei Cheng (bill.cheng@acm.org) 3 * 4 * Copyright (C) 2001-2009, William Chia-Wei Cheng. 5 * 6 * This file may be distributed under the terms of the Q Public License 7 * as defined by Trolltech AS of Norway and appearing in the file 8 * LICENSE.QPL included in the packaging of this file. 9 * 10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/rm_intrf.e,v 1.10 2011/05/16 16:21:59 william Exp $ 19 */ 20 21#ifndef _RM_INTRF_E_ 22#define _RM_INTRF_E_ 23 24#include "rmcast/src/rmcast.h" 25 26typedef void *TGEF_USER_INFO; 27typedef long (TGEF_MAIN)ARGS_DECL((TGEF_USER_INFO*, int, int, void*)); 28 29typedef void (RM_getVersion_Func)ARGS_DECL((char *buf, int buf_sz)); 30typedef int (RM_initialize_Func)ARGS_DECL((void *callbackterm( void ))); 31typedef int (RM_joinGroup_Func)ARGS_DECL((char *group, int port)); 32typedef void (RM_leaveGroup_Func)ARGS_DECL((int sock, char *group)); 33typedef void (RM_terminate_Func)ARGS_DECL((void)); 34typedef int (RM_sendto_Func)ARGS_DECL((int socket, void *buffer, 35 int buffsize)); 36typedef int (RM_recv_Func)ARGS_DECL((int socket, void *buffer, int buffsize)); 37typedef int (RM_getCurStatus_Func)ARGS_DECL((char *group, int port, 38 CurStatus *c)); 39typedef int (RM_sendCurStatus_Func)ARGS_DECL((int connfd, char *buff, 40 int buffsize)); 41typedef int (RM_readConfigFile_Func)ARGS_DECL((char *filename, 42 char show_config_file)); 43typedef void (RM_getOption_Func)ARGS_DECL((int opt, void *return_value)); 44typedef void (RM_setOption_Func)ARGS_DECL((int opt, void *optvalue)); 45typedef int (RM_setHostDelay_Func)ARGS_DECL((char *hostname, 46 int estimated_one_way_delay)); 47typedef int (RM_getHostDelay_Func)ARGS_DECL((char *hostname, 48 int *estimated_one_way_delay)); 49typedef void (RMDEBUG_setpidip_Func)ARGS_DECL((int pid, char *ip)); 50typedef void (RMDEBUG_setsn_Func)ARGS_DECL((int sn)); 51 52typedef struct tagRMCastIntrfInfo { 53 char szPath[MAXPATHLENGTH+1]; 54 55 RM_getVersion_Func *pfn_RM_getVersion; 56 RM_initialize_Func *pfn_RM_initialize; 57 RM_joinGroup_Func *pfn_RM_joinGroup; 58 RM_leaveGroup_Func *pfn_RM_leaveGroup; 59 RM_terminate_Func *pfn_RM_terminate; /* no need */ 60 RM_sendto_Func *pfn_RM_sendto; 61 RM_recv_Func *pfn_RM_recv; 62 RM_getCurStatus_Func *pfn_RM_getCurStatus; 63 RM_sendCurStatus_Func *pfn_RM_sendCurStatus; 64 RM_readConfigFile_Func *pfn_RM_readConfigFile; 65 RM_getOption_Func *pfn_RM_getOption; 66 RM_setOption_Func *pfn_RM_setOption; 67 RM_setHostDelay_Func *pfn_RM_setHostDelay; /* no need */ 68 RM_getHostDelay_Func *pfn_RM_getHostDelay; /* no need */ 69 RMDEBUG_setpidip_Func *pfn_RMDEBUG_setpidip; /* no need */ 70 RMDEBUG_setsn_Func *pfn_RMDEBUG_setsn; /* no need */ 71 72 void *pSharedLibHandle; 73} RMCastIntrfInfo; 74 75extern char cmdLineRMCastLibDir[MAXPATHLENGTH+1]; 76extern char cmdLineRMCastLibPath[MAXPATHLENGTH+1]; 77extern RMCastIntrfInfo gRMCastIntrfInfo; 78 79#ifdef _INCLUDE_FROM_RM_INTRF_C_ 80#undef extern 81#define extern 82#endif /*_INCLUDE_FROM_RM_INTRF_C_*/ 83 84extern void RMCastCleanUp ARGS_DECL((void)); 85extern int RMCastInit ARGS_DECL((void)); 86 87#ifndef _NO_RMCAST_SO 88extern void RM_getVersion ARGS_DECL((char *buf, int buf_sz)); 89extern int RM_initialize ARGS_DECL((void *callbackterm( void ))); 90extern int RM_joinGroup ARGS_DECL((char *group, int port)); 91extern void RM_leaveGroup ARGS_DECL((int sock, char *group)); 92extern void RM_terminate ARGS_DECL((void)); 93extern int RM_sendto ARGS_DECL((int socket, void *buffer, int buffsize)); 94extern int RM_recv ARGS_DECL((int socket, void *buffer, int buffsize)); 95extern int RM_getCurStatus ARGS_DECL((char *group, int port, 96 CurStatus *c)); 97extern int RM_sendCurStatus ARGS_DECL((int connfd, char *buff, 98 int buffsize)); 99extern int RM_readConfigFile ARGS_DECL((char *filename, 100 char show_config_file)); 101extern void RM_getOption ARGS_DECL((int opt, void *return_value)); 102extern void RM_setOption ARGS_DECL((int opt, void *optvalue)); 103extern int RM_setHostDelay ARGS_DECL((char *hostname, 104 int estimated_one_way_delay)); 105extern int RM_getHostDelay ARGS_DECL((char *hostname, 106 int *estimated_one_way_delay)); 107extern void RMDEBUG_setpidip ARGS_DECL((int pid, char *ip)); 108extern void RMDEBUG_setsn ARGS_DECL((int sn)); 109#endif /* _NO_RMCAST_SO */ 110 111#ifdef _INCLUDE_FROM_RM_INTRF_C_ 112#undef extern 113#ifndef _NO_RECURSIVE_EXTERN 114#define extern extern 115#endif /* ~_NO_RECURSIVE_EXTERN */ 116#endif /*_INCLUDE_FROM_RM_INTRF_C_*/ 117 118#endif /*_RM_INTRF_E_*/ 119