// DWBS ------------------------------------------------------------------ DWBS
//
// PLATFORM		: ALL
// PRODUCT		: BIT_DEMON
// VISIBILITY	: PUBLIC
//
// DWBS ------------------------------------------------------------------ DWBS

// PURPOSE: Type definitions and constants relating to the lobby services.

#ifndef BD_LOBBY_SERVICES_COMMON_H
#define BD_LOBBY_SERVICES_COMMON_H

#include <bdCore/bdCore.h>
#include <bdLobby/bdLobbyErrorCode.h>

// Title identifier
typedef bdUInt32 bdTitleID;

// An entity id constitutes either a user or a team id.
typedef bdUInt64 bdEntityID;

// Uniquely identifies an online user
typedef bdEntityID bdOnlineUserID;

// Uniquely identifies a team. 
typedef bdEntityID bdTeamID;

// Leaderboard indentifier
typedef bdUInt32 bdLeaderBoardID;

typedef bdUInt32 bdDirtyFlag;

#define BD_INT32_NAN 0x7FFFFFFF
#define BD_INT64_NAN 0x7FFFFFFFFFFFFFFFLL
#define BD_FLOAT32_NAN 0x7FFFFFFF
#define BD_FLOAT64_NAN 0x7FFFFFFFFFFFFFFFLL


#define BD_MAX_USERNAME_LENGTH		(64u)
#define BD_MAX_GROUPNAME_LENGTH		(32u)
#define BD_MAX_FILE_NAME_LENGTH 	(128u)
#define BD_MAX_TEAMNAME_LENGTH		(64u)
#define BD_MAX_CHANNELNAME_LENGTH 	(128u)
#define BD_MAX_USERS_PER_CONSOLE	(4u)
#define BD_MAXIMUM_CUSTOM_MSG_SIZE 	(1024u)
#define BD_MAX_MIMETYPE_STRING_LENGTH (64u)
#define BD_MAX_RECORD_EVENT_STRING_LENGTH (32u)

// Service IDs
#define BD_LOBBY_SERVICE_GATEWAY_ID					(1u)
#define BD_USER_MANAGEMENT_SERVICE					(2u)
#define BD_TEAM_MANAGEMENT_SERVICE					(3u)
#define BD_STATS_SERVICE							(4u)
#define BD_MATCHMAKING_SERVICE						(5u)
#define BD_MESSAGING_SERVICE_ID						(6u)
#define BD_AUTH_SERVICE_ID							(7u)
#define BD_PROFILE_MANAGEMENT_SERVICE				(8u)
#define BD_FRIENDS_MANAGEMENT_SERVICE				(9u)
#define BD_STORAGE_SERVICE							(10u)
#define BD_CHANNEL_CHAT_SERVICE						(11u)
#define BD_TITLE_UTILITIES_SERVICE				    (12u)
#define BD_KEY_ARCHIVE_SERVICE						(15u)

// Task Reply Message
#define BD_LOBBY_SERVICE_TASK_REPLY		(1u)
#define BD_LOBBY_SERVICE_PUSH_MESSAGE	(2u)
#define BD_LOBBY_ERROR_RESULT			(3u)
#define BD_LOBBY_CONNECTION_ID          (4u)


#endif // BD_LOBBY_SERVICES_COMMON_H
