61 lines
1.7 KiB
C
61 lines
1.7 KiB
C
|
// Copyright (C) 2007 Id Software, Inc.
|
||
|
//
|
||
|
|
||
|
#if !defined( __SDNETSESSIONMANAGER_H__ )
|
||
|
#define __SDNETSESSIONMANAGER_H__
|
||
|
|
||
|
//===============================================================
|
||
|
//
|
||
|
// sdNetSessionManager
|
||
|
//
|
||
|
//===============================================================
|
||
|
|
||
|
class sdNetTask;
|
||
|
class sdNetSession;
|
||
|
|
||
|
class sdNetSessionManager {
|
||
|
public:
|
||
|
enum sessionSource_e {
|
||
|
SS_LAN,
|
||
|
SS_LAN_REPEATER,
|
||
|
SS_INTERNET_ALL,
|
||
|
SS_INTERNET_RANKED,
|
||
|
SS_INTERNET_REPEATER,
|
||
|
};
|
||
|
|
||
|
virtual ~sdNetSessionManager() {}
|
||
|
|
||
|
// Obtain network address of the current active game
|
||
|
virtual const netadr_t& GetCurrentSessionAddress() const = 0;
|
||
|
|
||
|
// Allocate a session
|
||
|
virtual sdNetSession* AllocSession( const netadr_t* sessionAddress = NULL ) = 0;
|
||
|
|
||
|
// Free a session
|
||
|
virtual void FreeSession( sdNetSession* session ) = 0;
|
||
|
|
||
|
//
|
||
|
// Online functionality
|
||
|
//
|
||
|
|
||
|
// Register a session with the master
|
||
|
virtual sdNetTask* CreateSession( sdNetSession& session ) = 0;
|
||
|
|
||
|
// Update session details
|
||
|
virtual sdNetTask* UpdateSession( sdNetSession& session ) = 0;
|
||
|
|
||
|
// Remove session from the master
|
||
|
virtual sdNetTask* DeleteSession( sdNetSession& session ) = 0;
|
||
|
|
||
|
// Retrieve sessions from the master
|
||
|
virtual sdNetTask* FindSessions( idList< sdNetSession* >& sessions, sessionSource_e source = SS_INTERNET_ALL ) = 0;
|
||
|
|
||
|
// Re-queries the already obtained session list to get the most up to date details
|
||
|
virtual sdNetTask* RefreshSessions( idList< sdNetSession* >& sessions ) = 0;
|
||
|
|
||
|
// Re-queries the specified session to get the most up to date details
|
||
|
virtual sdNetTask* RefreshSession( sdNetSession& session ) = 0;
|
||
|
};
|
||
|
|
||
|
#endif /* !__SDNETSESSIONMANAGER_H__ */
|