etqw-sdk/source/sdnet/SDNetSessionManager.h

61 lines
1.7 KiB
C
Raw Permalink Normal View History

2008-05-29 00:00:00 +00:00
// 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__ */