//////////////////////////////////////////////////////////////////////////////
//
// Asura_Xbox360_LiveContextManager.h
//
// Copyright (c) 2008 Rebellion. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////////

// B E G I N   F I L E   W R A P P E R ///////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef ASURA_XBOX360_LIVECONTEXTMANAGER_H___
#define ASURA_XBOX360_LIVECONTEXTMANAGER_H___ 1

// F O R W A R D   D E C L A R A T I O N S ///////////////////////////////////
class Asura_Xbox360_LiveContextManagerMapping;

// C O N S T A N T S /////////////////////////////////////////////////////////
static const u_int uASURA_XBOX360_INVALID_CONTEXT_MAPPING = 0xffffffff;

// Asura_Xbox360_LiveContextManager deals with mapping Asura_Lobby attributes onto
// the context IDs and property IDs generated by XLAST.
class Asura_Xbox360_LiveContextManager
{
public:

	static void Initialise( u_int uNumMappings );
	static void Shutdown();
	static void AddMapping( u_int uAsuraLobbyAttribute, u_int uContextOrPropertyID, bool bIsProperty );
	static u_int GetMapping( u_int uAsuraLobbyAttribute, bool& bIsProperty );

private:

	static Asura_Xbox360_LiveContextManagerMapping* s_pxMapping;
	static u_int s_uMaxMappings;
};

// E N D   F I L E   W R A P P E R ///////////////////////////////////////////

#endif // #ifndef ASURA_XBOX360_LIVECONTEXTMANAGER_H___
