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.
95 lines
3.2 KiB
C
95 lines
3.2 KiB
C
/*H********************************************************************************/
|
|
/*!
|
|
\File netconnlocaluser.h
|
|
|
|
\Description
|
|
Wrapper for EA::User::IEAUser functionality
|
|
|
|
\Copyright
|
|
Copyright (c) 2017 Electronic Arts Inc.
|
|
|
|
\Version 10/24/2017 (amakoukji) First Version
|
|
*/
|
|
/********************************************************************************H*/
|
|
|
|
#ifndef _netconnlocaluser_h
|
|
#define _netconnlocaluser_h
|
|
|
|
/*** Include files ****************************************************************/
|
|
|
|
/*** Defines **********************************************************************/
|
|
|
|
/*** Macros ***********************************************************************/
|
|
|
|
/*** Type Definitions *************************************************************/
|
|
struct NetConnRefT;
|
|
|
|
//! user event callback function prototype
|
|
typedef void (NetConnAddLocalUserCallbackT)(struct NetConnLocalUserRefT *pCommonRef, int32_t iLocalUserIndex, const EA::User::IEAUser *pIEAUser);
|
|
typedef void (NetConnRemoveLocalUserCallbackT)(struct NetConnLocalUserRefT *pCommonRef, int32_t iLocalUserIndex, const EA::User::IEAUser *pIEAUser);
|
|
|
|
|
|
typedef enum NetConnIEAUserEventTypeE
|
|
{
|
|
NETCONN_EVENT_IEAUSER_ADDED = 0,
|
|
NETCONN_EVENT_IEAUSER_REMOVED
|
|
} NetConnIEAUserEventTypeE;
|
|
|
|
typedef struct NetConnIEAUserEventT
|
|
{
|
|
struct NetConnIEAUserEventT *pNext; //!< linked list
|
|
const EA::User::IEAUser *pIEAUser; //!< IEAUser reference
|
|
NetConnIEAUserEventTypeE eEvent; //!< event type
|
|
int32_t iLocalUserIndex; //!< local user index
|
|
} NetConnIEAUserEventT;
|
|
|
|
typedef struct NetConnLocalUserRefT
|
|
{
|
|
// module memory group
|
|
int32_t iMemGroup; //!< module mem group id
|
|
void *pMemGroupUserData; //!< user data associated with mem group
|
|
|
|
int32_t iDebugLevel;
|
|
|
|
NetConnIEAUserEventT *pIEAUserFreeEventList; //!< list of free IEAUser
|
|
NetConnIEAUserEventT *pIEAUserEventList; //!< list of pending NetConnIEAUserEvents - populated by customers with NetConnAddLocaUser()/NetConnRemoveUser()
|
|
|
|
NetConnAddLocalUserCallbackT *pAddUserCb;
|
|
NetConnRemoveLocalUserCallbackT *pRemoveUserCb;
|
|
|
|
NetConnRefT *pNetConn; //!< parent
|
|
|
|
NetCritT crit;
|
|
} NetConnLocalUserRefT;
|
|
|
|
|
|
/*** Variables ********************************************************************/
|
|
|
|
/*** Functions ********************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// handle shutdown functionality
|
|
void NetConnLocalUserDestroy(NetConnLocalUserRefT *pLocalUserRef);
|
|
|
|
// handle startup functionality
|
|
NetConnLocalUserRefT* NetConnLocalUserInit(NetConnRefT *pNetConn, NetConnAddLocalUserCallbackT *pAddUserCb, NetConnRemoveLocalUserCallbackT *pRemoveUserCb);
|
|
|
|
// handle add user functionality
|
|
int32_t NetConnLocalUserAdd(int32_t iLocalUserIndex, const EA::User::IEAUser *pLocalUser);
|
|
|
|
// handle remove user functionality
|
|
int32_t NetConnLocalUserRemove(int32_t iLocalUserIndex, const EA::User::IEAUser *pLocalUser);
|
|
|
|
// handle user update functionality
|
|
void NetConnLocalUserUpdate(NetConnLocalUserRefT *pLocalUserRef);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _netconnlocaluser_h
|
|
|