mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
DirtySDK (EA's Dirty Sockets library) will be used for the LiveAPI implementation, and depends on: EABase, EAThread.
93 lines
3.5 KiB
C
93 lines
3.5 KiB
C
/*H********************************************************************************/
|
|
/*!
|
|
\File netconncommon.h
|
|
|
|
\Description
|
|
Cross-platform netconn data types and private functions.
|
|
|
|
\Copyright
|
|
Copyright (c) 2014 Electronic Arts Inc.
|
|
|
|
\Version 05/21/2009 (mclouatre) First Version
|
|
*/
|
|
/********************************************************************************H*/
|
|
|
|
#ifndef _netconncommon_h
|
|
#define _netconncommon_h
|
|
|
|
/*** Include files ****************************************************************/
|
|
#include "DirtySDK/dirtysock/netconn.h"
|
|
|
|
/*** Defines **********************************************************************/
|
|
|
|
// initial size of external cleanup list (in number of entries)
|
|
#define NETCONN_EXTERNAL_CLEANUP_LIST_INITIAL_CAPACITY (12)
|
|
|
|
/*** Macros ***********************************************************************/
|
|
|
|
/*** Type Definitions *************************************************************/
|
|
|
|
//! external cleanup callback function prototype
|
|
typedef int32_t(*NetConnExternalCleanupCallbackT)(void *pNetConnExternalCleanupData);
|
|
|
|
typedef struct NetConnExternalCleanupEntryT
|
|
{
|
|
void *pCleanupData; //!< pointer to data to be passed to the external cleanup callback
|
|
NetConnExternalCleanupCallbackT pCleanupCb;//!< external cleanup callback
|
|
} NetConnExternalCleanupEntryT;
|
|
|
|
typedef struct NetConnCommonRefT
|
|
{
|
|
// module memory group
|
|
int32_t iMemGroup; //!< module mem group id
|
|
void *pMemGroupUserData; //!< user data associated with mem group
|
|
|
|
int32_t iDebugLevel;
|
|
|
|
int32_t iExternalCleanupListMax; //!< maximum number of entries in the array
|
|
int32_t iExternalCleanupListCnt; //!< number of valid entries in the array
|
|
NetConnExternalCleanupEntryT *pExternalCleanupList; //!< pointer to an array of entries pending external cleanup completion
|
|
|
|
int32_t iRefCount; //!< module reference counter
|
|
|
|
NetConnAccountInfoT aAccountInfo[NETCONN_MAXLOCALUSERS]; //!< account info array
|
|
|
|
NetCritT crit;
|
|
} NetConnCommonRefT;
|
|
|
|
|
|
/*** Variables ********************************************************************/
|
|
|
|
/*** Functions ********************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// handle common shutdown functionality
|
|
void NetConnCommonShutdown(NetConnCommonRefT *pCommonRef);
|
|
|
|
// handle common startup functionality
|
|
int32_t NetConnCommonStartup(int32_t iNetConnRefSize, const char *pParams, NetConnCommonRefT **pRef);
|
|
|
|
// add an entry to the list of external module pending successful cleanup
|
|
int32_t NetConnCommonAddToExternalCleanupList(NetConnCommonRefT *pCommonRef, NetConnExternalCleanupCallbackT pCleanupCb, void *pCleanupData);
|
|
|
|
// walk external cleanup list and try to destroy each individual entry
|
|
int32_t NetConnCommonProcessExternalCleanupList(NetConnCommonRefT *pCommonRef);
|
|
|
|
// decrement and verify the reference count for shutdown
|
|
int32_t NetConnCommonCheckRef(NetConnCommonRefT *pCommonRef);
|
|
|
|
// set module behavior based on input selector
|
|
int32_t NetConnCommonControl(NetConnCommonRefT *pCommonRef, int32_t iControl, int32_t iValue, int32_t iValue2, void *pValue, void *pValue2);
|
|
|
|
// check general network connection status (added param)
|
|
int32_t NetConnCommonStatus(NetConnCommonRefT *pCommonRef, int32_t iKind, int32_t iData, void *pBuf, int32_t iBufSize);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _netconcommon_h
|
|
|