// DO NOT MODIFY THIS FILE, IT HAS BEEN GENERATED.
// File generated by Quazal DDL Compiler, Version 4.1 [SP2] (Build 1224.83)
// Copyright (C) 1998-2004, Quazal Technologies Inc.

#ifndef _TTLMatchMakingDDL_H_
#define _TTLMatchMakingDDL_H_


#include <NetZ.h>

#include <Protocol/ClientProtocol.h>
#include <Protocol/ServerProtocol.h>
#include <Core/CallContextRegister.h>
#include <Protocol/ProtocolCGMacros.h>
#include <Protocol/ProtocolCallContext.h>
#include <Protocol/ProtocolRequestBroker.h>
#include <Protocol/Protocol.h>
#include <Plugins/Transport/Interface/TransportError.h>
#include "Services/Foundation/Protocol/ResultRange.h"
#include "Extensions/STL/STLExtTypes.h"
#include "Extensions/Any/AnyExtTypes.h"
#include "Services/MatchMaking/Protocol/Gathering.h"
#include "Services/Foundation/Protocol/ResultRange.h"
#include "Extensions/STL/STLExtTypes.h"
#include "Extensions/Any/AnyExtTypes.h"
#include "Services/MatchMaking/Protocol/Gathering.h"
#include "Services/Foundation/Protocol/ResultRange.h"
#include "Extensions/STL/STLExtTypes.h"
#include "Extensions/Any/AnyExtTypes.h"
#include "Services/MatchMaking/Protocol/Gathering.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/TTLStatsDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/TTLStatsDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/TTLStatsDDL.h"
#include "OSI/PS2/EidosAlertsDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/EidosFriendDDL.h"
#include "OSI/PS2/EidosClanPropsDDL.h"
#include "OSI/PS2/EidosClanMemberDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/EidosClanMemberDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/EidosClanPropsDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/EidosClanInviteDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/EidosClanInviteDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/EidosClanNoticeDDL.h"
#include "Extensions/STL/STLExtTypes.h"
#include "OSI/PS2/EidosClanPropsDDL.h"
#include "OSI/PS2/EidosAccountPrivateDDL.h"
#include "OSI/PS2/EidosAccountPublicDDL.h"

BEGIN_NAMESPACE_QUAZAL;

PROTO_DEFINE_RMCID(TTLMatchMaking, FindByLevelName, 1 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FindBySQLQuery, 2 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FindByRanking, 3 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FindRankingPosition, 4 );
PROTO_DEFINE_RMCID(TTLMatchMaking, GetTopPlayers, 5 );
PROTO_DEFINE_RMCID(TTLMatchMaking, GetStatsForPlayers, 6 );
PROTO_DEFINE_RMCID(TTLMatchMaking, GetLadderStats, 7 );
PROTO_DEFINE_RMCID(TTLMatchMaking, GetAlerts, 8 );
PROTO_DEFINE_RMCID(TTLMatchMaking, AddStatsPersonal, 9 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FilterText, 10 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FriendInvite, 11 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FriendInviteByID, 12 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FriendAccept, 13 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FriendReject, 14 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FriendDelete, 15 );
PROTO_DEFINE_RMCID(TTLMatchMaking, FriendsQuery, 16 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanGetMyClanInfo, 17 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanCreateClan, 18 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanGetMyClanMembershipList, 19 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanGetClanIDListForPlayer, 20 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanGetClanInfoFromClanID, 21 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanGetMyInvitations, 22 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanInvitePlayer, 23 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanCancelInvitation, 24 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanAcceptInvitation, 25 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanRejectInvitation, 26 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanBlockInvitation, 27 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanSetInvitationStatus, 28 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanRemoveMember, 29 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanAbandonClan, 30 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanPromote, 31 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanDemote, 32 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanNewLeader, 33 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanPostNotice, 34 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanGetMyNotices, 35 );
PROTO_DEFINE_RMCID(TTLMatchMaking, ClanMarkAlertKickedRead, 36 );
PROTO_DEFINE_RMCID(TTLMatchMaking, GetTopClans, 37 );
PROTO_DEFINE_RMCID(TTLMatchMaking, GetMessageOfTheDay, 38 );
PROTO_DEFINE_RMCID(TTLMatchMaking, GetEidosAccountInfo, 39 );

class TTLMatchMakingClient : public ClientProtocol {
    public:
        typedef DDLTYPE(string) TFindByLevelName_levelName;
        typedef CLASSMETATYPE(ResultRange) TFindByLevelName_range;
        typedef DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > > TFindByLevelName_lstGathering;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FindByLevelName)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFindByLevelName_lstGathering,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(string) TFindBySQLQuery_query;
        typedef CLASSMETATYPE(ResultRange) TFindBySQLQuery_range;
        typedef DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > > TFindBySQLQuery_lstGathering;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FindBySQLQuery)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFindBySQLQuery_lstGathering,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TFindByRanking_ranking;
        typedef DDLTYPE(uint32) TFindByRanking_maxdiff;
        typedef CLASSMETATYPE(ResultRange) TFindByRanking_range;
        typedef DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > > TFindByRanking_lstGathering;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FindByRanking)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFindByRanking_lstGathering,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TFindRankingPosition_gid;
        typedef DDLTYPE(uint32) TFindRankingPosition_position;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FindRankingPosition)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFindRankingPosition_position,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TGetTopPlayers_count;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) > TGetTopPlayers_lstGameStats;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, GetTopPlayers)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TGetTopPlayers_lstGameStats,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(std_list)< DDLTYPE(uint32) > TGetStatsForPlayers_pidList;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) > TGetStatsForPlayers_lstGameStats;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, GetStatsForPlayers)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TGetStatsForPlayers_lstGameStats,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TGetLadderStats_pivotPlayer;
        typedef DDLTYPE(uint32) TGetLadderStats_count;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) > TGetLadderStats_lstGameStats;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, GetLadderStats)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TGetLadderStats_lstGameStats,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef CLASSMETATYPE(EidosAlerts) TGetAlerts_outAlerts;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, GetAlerts)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TGetAlerts_outAlerts,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(std_list)< DDLTYPE(float) > TAddStatsPersonal_statValues;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, AddStatsPersonal)
        {
            PROTO_RETURNSTUB_IMPL();
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(bool) TFilterText_result;
        typedef DDLTYPE(string) TFilterText_textToFilter;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FilterText)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFilterText_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(bool) TFriendInvite_result;
        typedef DDLTYPE(string) TFriendInvite_strPlayer;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FriendInvite)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFriendInvite_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(bool) TFriendInviteByID_result;
        typedef DDLTYPE(uint32) TFriendInviteByID_uiPlayer;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FriendInviteByID)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFriendInviteByID_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(bool) TFriendAccept_result;
        typedef DDLTYPE(uint32) TFriendAccept_uiPlayer;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FriendAccept)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFriendAccept_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(bool) TFriendReject_result;
        typedef DDLTYPE(uint32) TFriendReject_uiPlayer;
        typedef DDLTYPE(bool) TFriendReject_bBlock;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FriendReject)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFriendReject_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(bool) TFriendDelete_result;
        typedef DDLTYPE(uint32) TFriendDelete_uiPlayer;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FriendDelete)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFriendDelete_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(string) TFriendsQuery_strLocale;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosFriend) > TFriendsQuery_lstFriendsList;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, FriendsQuery)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TFriendsQuery_lstFriendsList,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanGetMyClanInfo_result;
        typedef CLASSMETATYPE(EidosClanProps) TClanGetMyClanInfo_outProps;
        typedef CLASSMETATYPE(EidosClanMember) TClanGetMyClanInfo_outPlayer;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanGetMyClanInfo)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanGetMyClanInfo_result,1);
            _DO_RMC_ExtractReturnValue(TClanGetMyClanInfo_outProps,1);
            _DO_RMC_ExtractReturnValue(TClanGetMyClanInfo_outPlayer,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanCreateClan_result;
        typedef DDLTYPE(string) TClanCreateClan_inClanName;
        typedef DDLTYPE(string) TClanCreateClan_inClanAbbr;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanCreateClan)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanCreateClan_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanGetMyClanMembershipList_result;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanMember) > TClanGetMyClanMembershipList_outMembers;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanGetMyClanMembershipList)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanGetMyClanMembershipList_result,1);
            _DO_RMC_ExtractReturnValue(TClanGetMyClanMembershipList_outMembers,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanGetClanIDListForPlayer_result;
        typedef DDLTYPE(uint32) TClanGetClanIDListForPlayer_inPid;
        typedef DDLTYPE(std_list)< DDLTYPE(uint32) > TClanGetClanIDListForPlayer_outClansList;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanGetClanIDListForPlayer)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanGetClanIDListForPlayer_result,1);
            _DO_RMC_ExtractReturnValue(TClanGetClanIDListForPlayer_outClansList,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanGetClanInfoFromClanID_result;
        typedef DDLTYPE(uint32) TClanGetClanInfoFromClanID_inCid;
        typedef CLASSMETATYPE(EidosClanProps) TClanGetClanInfoFromClanID_outProps;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanGetClanInfoFromClanID)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanGetClanInfoFromClanID_result,1);
            _DO_RMC_ExtractReturnValue(TClanGetClanInfoFromClanID_outProps,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanGetMyInvitations_result;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) > TClanGetMyInvitations_outInvitesToMe;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) > TClanGetMyInvitations_outInvitesFromMe;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanGetMyInvitations)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanGetMyInvitations_result,1);
            _DO_RMC_ExtractReturnValue(TClanGetMyInvitations_outInvitesToMe,1);
            _DO_RMC_ExtractReturnValue(TClanGetMyInvitations_outInvitesFromMe,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanInvitePlayer_result;
        typedef DDLTYPE(string) TClanInvitePlayer_playerToInvite;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanInvitePlayer)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanInvitePlayer_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanCancelInvitation_result;
        typedef DDLTYPE(string) TClanCancelInvitation_playerToUninvite;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanCancelInvitation)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanCancelInvitation_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanAcceptInvitation_result;
        typedef DDLTYPE(uint32) TClanAcceptInvitation_clanIDInviter;
        typedef DDLTYPE(string) TClanAcceptInvitation_playerNameInviter;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanAcceptInvitation)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanAcceptInvitation_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanRejectInvitation_result;
        typedef DDLTYPE(uint32) TClanRejectInvitation_clanIDInviter;
        typedef DDLTYPE(string) TClanRejectInvitation_playerNameInviter;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanRejectInvitation)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanRejectInvitation_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanBlockInvitation_result;
        typedef DDLTYPE(uint32) TClanBlockInvitation_clanIDInviter;
        typedef DDLTYPE(string) TClanBlockInvitation_playerNameInviter;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanBlockInvitation)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanBlockInvitation_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanSetInvitationStatus_result;
        typedef DDLTYPE(bool) TClanSetInvitationStatus_isAcceptingInvites;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanSetInvitationStatus)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanSetInvitationStatus_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanRemoveMember_result;
        typedef DDLTYPE(uint32) TClanRemoveMember_playerToRemove;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanRemoveMember)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanRemoveMember_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanAbandonClan_result;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanAbandonClan)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanAbandonClan_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanPromote_result;
        typedef DDLTYPE(uint32) TClanPromote_playerToPromote;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanPromote)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanPromote_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanDemote_result;
        typedef DDLTYPE(uint32) TClanDemote_playerToDemote;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanDemote)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanDemote_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanNewLeader_result;
        typedef DDLTYPE(uint32) TClanNewLeader_playerNewLeader;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanNewLeader)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanNewLeader_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanPostNotice_result;
        typedef DDLTYPE(string) TClanPostNotice_newNotice;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanPostNotice)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanPostNotice_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanGetMyNotices_result;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanNotice) > TClanGetMyNotices_outNotices;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanGetMyNotices)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanGetMyNotices_result,1);
            _DO_RMC_ExtractReturnValue(TClanGetMyNotices_outNotices,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TClanMarkAlertKickedRead_result;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, ClanMarkAlertKickedRead)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TClanMarkAlertKickedRead_result,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(uint32) TGetTopClans_count;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanProps) > TGetTopClans_lstClanStats;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, GetTopClans)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TGetTopClans_lstClanStats,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef DDLTYPE(string) TGetMessageOfTheDay_inLanguage;
        typedef DDLTYPE(string) TGetMessageOfTheDay_outMessage;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, GetMessageOfTheDay)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TGetMessageOfTheDay_outMessage,1);
            PROTO_RETURNSTUB_END();
        };
        
        typedef CLASSMETATYPE(EidosAccountPrivate) TGetEidosAccountInfo_outPrivateData;
        typedef CLASSMETATYPE(EidosAccountPublic) TGetEidosAccountInfo_outPublicData;
        typedef DDLTYPE(string) TGetEidosAccountInfo_email;
        PROTO_RMCIMPL_RETURN(TTLMatchMaking, GetEidosAccountInfo)
        {
            PROTO_RETURNSTUB_IMPL();
            _DO_RMC_ExtractReturnValue(TGetEidosAccountInfo_outPrivateData,1);
            _DO_RMC_ExtractReturnValue(TGetEidosAccountInfo_outPublicData,1);
            _DO_RMC_ExtractReturnValue(TGetEidosAccountInfo_email,1);
            PROTO_RETURNSTUB_END();
        };
        
        TTLMatchMakingClient() {}
        virtual void ExtractCallSpecificResults(Message *pMessage, ProtocolCallContext* pContext);
        
        qBool CallFindByLevelName(ProtocolCallContext *pContext, const DDLTYPE(string)::CPPType& levelName, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering);
        static qBool FindByLevelName_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(string)::CPPType& levelName, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering);
        qBool CallFindBySQLQuery(ProtocolCallContext *pContext, const DDLTYPE(string)::CPPType& query, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering);
        static qBool FindBySQLQuery_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(string)::CPPType& query, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering);
        qBool CallFindByRanking(ProtocolCallContext *pContext, const DDLTYPE(uint32)::CPPType& ranking, const DDLTYPE(uint32)::CPPType& maxdiff, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering);
        static qBool FindByRanking_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(uint32)::CPPType& ranking, const DDLTYPE(uint32)::CPPType& maxdiff, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering);
        qBool CallFindRankingPosition(ProtocolCallContext *pContext, const DDLTYPE(uint32)::CPPType& gid, DDLTYPE(uint32)::CPPType* position);
        static qBool FindRankingPosition_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(uint32)::CPPType& gid, DDLTYPE(uint32)::CPPType* position);
        qBool CallGetTopPlayers(ProtocolCallContext *pContext, const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats);
        static qBool GetTopPlayers_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats);
        qBool CallGetStatsForPlayers(ProtocolCallContext *pContext, const DDLTYPE(std_list)< DDLTYPE(uint32) >::CPPType& pidList, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats);
        static qBool GetStatsForPlayers_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(std_list)< DDLTYPE(uint32) >::CPPType& pidList, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats);
        qBool CallGetLadderStats(ProtocolCallContext *pContext, const DDLTYPE(uint32)::CPPType& pivotPlayer, const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats);
        static qBool GetLadderStats_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(uint32)::CPPType& pivotPlayer, const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats);
        qBool CallGetAlerts(ProtocolCallContext *pContext, EidosAlerts* outAlerts);
        static qBool GetAlerts_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, EidosAlerts* outAlerts);
        qBool CallAddStatsPersonal(ProtocolCallContext *pContext, const DDLTYPE(std_list)< DDLTYPE(float) >::CPPType& statValues);
        static qBool AddStatsPersonal_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(std_list)< DDLTYPE(float) >::CPPType& statValues);
        qBool CallFilterText(ProtocolCallContext *pContext, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(string)::CPPType& textToFilter);
        static qBool FilterText_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(string)::CPPType& textToFilter);
        qBool CallFriendInvite(ProtocolCallContext *pContext, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(string)::CPPType& strPlayer);
        static qBool FriendInvite_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(string)::CPPType& strPlayer);
        qBool CallFriendInviteByID(ProtocolCallContext *pContext, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& uiPlayer);
        static qBool FriendInviteByID_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& uiPlayer);
        qBool CallFriendAccept(ProtocolCallContext *pContext, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& uiPlayer);
        static qBool FriendAccept_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& uiPlayer);
        qBool CallFriendReject(ProtocolCallContext *pContext, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& uiPlayer, const DDLTYPE(bool)::CPPType& bBlock);
        static qBool FriendReject_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& uiPlayer, const DDLTYPE(bool)::CPPType& bBlock);
        qBool CallFriendDelete(ProtocolCallContext *pContext, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& uiPlayer);
        static qBool FriendDelete_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(bool)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& uiPlayer);
        qBool CallFriendsQuery(ProtocolCallContext *pContext, const DDLTYPE(string)::CPPType& strLocale, DDLTYPE(std_list)< CLASSMETATYPE(EidosFriend) >::CPPType* lstFriendsList);
        static qBool FriendsQuery_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(string)::CPPType& strLocale, DDLTYPE(std_list)< CLASSMETATYPE(EidosFriend) >::CPPType* lstFriendsList);
        qBool CallClanGetMyClanInfo(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, EidosClanProps* outProps, EidosClanMember* outPlayer);
        static qBool ClanGetMyClanInfo_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, EidosClanProps* outProps, EidosClanMember* outPlayer);
        qBool CallClanCreateClan(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(string)::CPPType& inClanName, const DDLTYPE(string)::CPPType& inClanAbbr);
        static qBool ClanCreateClan_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(string)::CPPType& inClanName, const DDLTYPE(string)::CPPType& inClanAbbr);
        qBool CallClanGetMyClanMembershipList(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanMember) >::CPPType* outMembers);
        static qBool ClanGetMyClanMembershipList_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanMember) >::CPPType* outMembers);
        qBool CallClanGetClanIDListForPlayer(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& inPid, DDLTYPE(std_list)< DDLTYPE(uint32) >::CPPType* outClansList);
        static qBool ClanGetClanIDListForPlayer_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& inPid, DDLTYPE(std_list)< DDLTYPE(uint32) >::CPPType* outClansList);
        qBool CallClanGetClanInfoFromClanID(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& inCid, EidosClanProps* outProps);
        static qBool ClanGetClanInfoFromClanID_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& inCid, EidosClanProps* outProps);
        qBool CallClanGetMyInvitations(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) >::CPPType* outInvitesToMe, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) >::CPPType* outInvitesFromMe);
        static qBool ClanGetMyInvitations_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) >::CPPType* outInvitesToMe, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) >::CPPType* outInvitesFromMe);
        qBool CallClanInvitePlayer(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(string)::CPPType& playerToInvite);
        static qBool ClanInvitePlayer_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(string)::CPPType& playerToInvite);
        qBool CallClanCancelInvitation(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(string)::CPPType& playerToUninvite);
        static qBool ClanCancelInvitation_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(string)::CPPType& playerToUninvite);
        qBool CallClanAcceptInvitation(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter);
        static qBool ClanAcceptInvitation_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter);
        qBool CallClanRejectInvitation(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter);
        static qBool ClanRejectInvitation_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter);
        qBool CallClanBlockInvitation(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter);
        static qBool ClanBlockInvitation_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter);
        qBool CallClanSetInvitationStatus(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(bool)::CPPType& isAcceptingInvites);
        static qBool ClanSetInvitationStatus_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(bool)::CPPType& isAcceptingInvites);
        qBool CallClanRemoveMember(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& playerToRemove);
        static qBool ClanRemoveMember_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& playerToRemove);
        qBool CallClanAbandonClan(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn);
        static qBool ClanAbandonClan_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn);
        qBool CallClanPromote(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& playerToPromote);
        static qBool ClanPromote_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& playerToPromote);
        qBool CallClanDemote(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& playerToDemote);
        static qBool ClanDemote_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& playerToDemote);
        qBool CallClanNewLeader(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& playerNewLeader);
        static qBool ClanNewLeader_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(uint32)::CPPType& playerNewLeader);
        qBool CallClanPostNotice(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(string)::CPPType& newNotice);
        static qBool ClanPostNotice_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, const DDLTYPE(string)::CPPType& newNotice);
        qBool CallClanGetMyNotices(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanNotice) >::CPPType* outNotices);
        static qBool ClanGetMyNotices_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanNotice) >::CPPType* outNotices);
        qBool CallClanMarkAlertKickedRead(ProtocolCallContext *pContext, DDLTYPE(uint32)::CPPType *pReturn);
        static qBool ClanMarkAlertKickedRead_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, DDLTYPE(uint32)::CPPType *pReturn);
        qBool CallGetTopClans(ProtocolCallContext *pContext, const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanProps) >::CPPType* lstClanStats);
        static qBool GetTopClans_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanProps) >::CPPType* lstClanStats);
        qBool CallGetMessageOfTheDay(ProtocolCallContext *pContext, const DDLTYPE(string)::CPPType& inLanguage, DDLTYPE(string)::CPPType* outMessage);
        static qBool GetMessageOfTheDay_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, const DDLTYPE(string)::CPPType& inLanguage, DDLTYPE(string)::CPPType* outMessage);
        qBool CallGetEidosAccountInfo(ProtocolCallContext *pContext, EidosAccountPrivate* outPrivateData, EidosAccountPublic* outPublicData, DDLTYPE(string)::CPPType* email);
        static qBool GetEidosAccountInfo_PrepareRequest(ProtocolCallContext *pContext, Message *pMsg, EidosAccountPrivate* outPrivateData, EidosAccountPublic* outPublicData, DDLTYPE(string)::CPPType* email);
};

class DDLPROTOCOL(TTLMatchMakingServer) : public ServerProtocol {
    public:
        typedef DDLTYPE(string) TFindByLevelName_levelName;
        typedef CLASSMETATYPE(ResultRange) TFindByLevelName_range;
        typedef DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > > TFindByLevelName_lstGathering;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FindByLevelName)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType levelName;
            _MSG_EXTRACT_VARIABLE(TFindByLevelName_levelName, levelName);
            ResultRange range;
            _MSG_EXTRACT_VARIABLE(TFindByLevelName_range, range);
            DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType lstGathering;
            pProtocol->FindByLevelName( levelName, range, &lstGathering );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FindByLevelName);
            _MSG_ADD_VARIABLE(TFindByLevelName_lstGathering, lstGathering);
        }
        
        typedef DDLTYPE(string) TFindBySQLQuery_query;
        typedef CLASSMETATYPE(ResultRange) TFindBySQLQuery_range;
        typedef DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > > TFindBySQLQuery_lstGathering;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FindBySQLQuery)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType query;
            _MSG_EXTRACT_VARIABLE(TFindBySQLQuery_query, query);
            ResultRange range;
            _MSG_EXTRACT_VARIABLE(TFindBySQLQuery_range, range);
            DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType lstGathering;
            pProtocol->FindBySQLQuery( query, range, &lstGathering );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FindBySQLQuery);
            _MSG_ADD_VARIABLE(TFindBySQLQuery_lstGathering, lstGathering);
        }
        
        typedef DDLTYPE(uint32) TFindByRanking_ranking;
        typedef DDLTYPE(uint32) TFindByRanking_maxdiff;
        typedef CLASSMETATYPE(ResultRange) TFindByRanking_range;
        typedef DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > > TFindByRanking_lstGathering;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FindByRanking)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType ranking;
            _MSG_EXTRACT_VARIABLE(TFindByRanking_ranking, ranking);
            DDLTYPE(uint32)::CPPType maxdiff;
            _MSG_EXTRACT_VARIABLE(TFindByRanking_maxdiff, maxdiff);
            ResultRange range;
            _MSG_EXTRACT_VARIABLE(TFindByRanking_range, range);
            DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType lstGathering;
            pProtocol->FindByRanking( ranking, maxdiff, range, &lstGathering );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FindByRanking);
            _MSG_ADD_VARIABLE(TFindByRanking_lstGathering, lstGathering);
        }
        
        typedef DDLTYPE(uint32) TFindRankingPosition_gid;
        typedef DDLTYPE(uint32) TFindRankingPosition_position;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FindRankingPosition)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType gid;
            _MSG_EXTRACT_VARIABLE(TFindRankingPosition_gid, gid);
            DDLTYPE(uint32)::CPPType position;
            pProtocol->FindRankingPosition( gid, &position );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FindRankingPosition);
            _MSG_ADD_VARIABLE(TFindRankingPosition_position, position);
        }
        
        typedef DDLTYPE(uint32) TGetTopPlayers_count;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) > TGetTopPlayers_lstGameStats;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, GetTopPlayers)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType count;
            _MSG_EXTRACT_VARIABLE(TGetTopPlayers_count, count);
            DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType lstGameStats;
            pProtocol->GetTopPlayers( count, &lstGameStats );
            PROTO_PREPARE_RETURN(TTLMatchMaking,GetTopPlayers);
            _MSG_ADD_VARIABLE(TGetTopPlayers_lstGameStats, lstGameStats);
        }
        
        typedef DDLTYPE(std_list)< DDLTYPE(uint32) > TGetStatsForPlayers_pidList;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) > TGetStatsForPlayers_lstGameStats;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, GetStatsForPlayers)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(std_list)< DDLTYPE(uint32) >::CPPType pidList;
            _MSG_EXTRACT_VARIABLE(TGetStatsForPlayers_pidList, pidList);
            DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType lstGameStats;
            pProtocol->GetStatsForPlayers( pidList, &lstGameStats );
            PROTO_PREPARE_RETURN(TTLMatchMaking,GetStatsForPlayers);
            _MSG_ADD_VARIABLE(TGetStatsForPlayers_lstGameStats, lstGameStats);
        }
        
        typedef DDLTYPE(uint32) TGetLadderStats_pivotPlayer;
        typedef DDLTYPE(uint32) TGetLadderStats_count;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) > TGetLadderStats_lstGameStats;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, GetLadderStats)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType pivotPlayer;
            _MSG_EXTRACT_VARIABLE(TGetLadderStats_pivotPlayer, pivotPlayer);
            DDLTYPE(uint32)::CPPType count;
            _MSG_EXTRACT_VARIABLE(TGetLadderStats_count, count);
            DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType lstGameStats;
            pProtocol->GetLadderStats( pivotPlayer, count, &lstGameStats );
            PROTO_PREPARE_RETURN(TTLMatchMaking,GetLadderStats);
            _MSG_ADD_VARIABLE(TGetLadderStats_lstGameStats, lstGameStats);
        }
        
        typedef CLASSMETATYPE(EidosAlerts) TGetAlerts_outAlerts;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, GetAlerts)
        {
            PROTO_PREPARE_EXTRACTION();
            EidosAlerts outAlerts;
            pProtocol->GetAlerts( &outAlerts );
            PROTO_PREPARE_RETURN(TTLMatchMaking,GetAlerts);
            _MSG_ADD_VARIABLE(TGetAlerts_outAlerts, outAlerts);
        }
        
        typedef DDLTYPE(std_list)< DDLTYPE(float) > TAddStatsPersonal_statValues;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, AddStatsPersonal)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(std_list)< DDLTYPE(float) >::CPPType statValues;
            _MSG_EXTRACT_VARIABLE(TAddStatsPersonal_statValues, statValues);
            pProtocol->AddStatsPersonal( statValues );
            PROTO_PREPARE_RETURN(TTLMatchMaking,AddStatsPersonal);
        }
        
        typedef DDLTYPE(bool) TFilterText_result;
        typedef DDLTYPE(string) TFilterText_textToFilter;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FilterText)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType textToFilter;
            _MSG_EXTRACT_VARIABLE(TFilterText_textToFilter, textToFilter);
            DDLTYPE(bool)::CPPType __result=pProtocol->FilterText( textToFilter );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FilterText);
            _MSG_ADD_VARIABLE(TFilterText_result,__result);
        }
        
        typedef DDLTYPE(bool) TFriendInvite_result;
        typedef DDLTYPE(string) TFriendInvite_strPlayer;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FriendInvite)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType strPlayer;
            _MSG_EXTRACT_VARIABLE(TFriendInvite_strPlayer, strPlayer);
            DDLTYPE(bool)::CPPType __result=pProtocol->FriendInvite( strPlayer );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FriendInvite);
            _MSG_ADD_VARIABLE(TFriendInvite_result,__result);
        }
        
        typedef DDLTYPE(bool) TFriendInviteByID_result;
        typedef DDLTYPE(uint32) TFriendInviteByID_uiPlayer;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FriendInviteByID)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType uiPlayer;
            _MSG_EXTRACT_VARIABLE(TFriendInviteByID_uiPlayer, uiPlayer);
            DDLTYPE(bool)::CPPType __result=pProtocol->FriendInviteByID( uiPlayer );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FriendInviteByID);
            _MSG_ADD_VARIABLE(TFriendInviteByID_result,__result);
        }
        
        typedef DDLTYPE(bool) TFriendAccept_result;
        typedef DDLTYPE(uint32) TFriendAccept_uiPlayer;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FriendAccept)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType uiPlayer;
            _MSG_EXTRACT_VARIABLE(TFriendAccept_uiPlayer, uiPlayer);
            DDLTYPE(bool)::CPPType __result=pProtocol->FriendAccept( uiPlayer );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FriendAccept);
            _MSG_ADD_VARIABLE(TFriendAccept_result,__result);
        }
        
        typedef DDLTYPE(bool) TFriendReject_result;
        typedef DDLTYPE(uint32) TFriendReject_uiPlayer;
        typedef DDLTYPE(bool) TFriendReject_bBlock;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FriendReject)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType uiPlayer;
            _MSG_EXTRACT_VARIABLE(TFriendReject_uiPlayer, uiPlayer);
            DDLTYPE(bool)::CPPType bBlock;
            _MSG_EXTRACT_VARIABLE(TFriendReject_bBlock, bBlock);
            DDLTYPE(bool)::CPPType __result=pProtocol->FriendReject( uiPlayer, bBlock );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FriendReject);
            _MSG_ADD_VARIABLE(TFriendReject_result,__result);
        }
        
        typedef DDLTYPE(bool) TFriendDelete_result;
        typedef DDLTYPE(uint32) TFriendDelete_uiPlayer;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FriendDelete)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType uiPlayer;
            _MSG_EXTRACT_VARIABLE(TFriendDelete_uiPlayer, uiPlayer);
            DDLTYPE(bool)::CPPType __result=pProtocol->FriendDelete( uiPlayer );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FriendDelete);
            _MSG_ADD_VARIABLE(TFriendDelete_result,__result);
        }
        
        typedef DDLTYPE(string) TFriendsQuery_strLocale;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosFriend) > TFriendsQuery_lstFriendsList;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, FriendsQuery)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType strLocale;
            _MSG_EXTRACT_VARIABLE(TFriendsQuery_strLocale, strLocale);
            DDLTYPE(std_list)< CLASSMETATYPE(EidosFriend) >::CPPType lstFriendsList;
            pProtocol->FriendsQuery( strLocale, &lstFriendsList );
            PROTO_PREPARE_RETURN(TTLMatchMaking,FriendsQuery);
            _MSG_ADD_VARIABLE(TFriendsQuery_lstFriendsList, lstFriendsList);
        }
        
        typedef DDLTYPE(uint32) TClanGetMyClanInfo_result;
        typedef CLASSMETATYPE(EidosClanProps) TClanGetMyClanInfo_outProps;
        typedef CLASSMETATYPE(EidosClanMember) TClanGetMyClanInfo_outPlayer;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanGetMyClanInfo)
        {
            PROTO_PREPARE_EXTRACTION();
            EidosClanProps outProps;
            EidosClanMember outPlayer;
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanGetMyClanInfo( &outProps, &outPlayer );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanGetMyClanInfo);
            _MSG_ADD_VARIABLE(TClanGetMyClanInfo_result,__result);
            _MSG_ADD_VARIABLE(TClanGetMyClanInfo_outProps, outProps);
            _MSG_ADD_VARIABLE(TClanGetMyClanInfo_outPlayer, outPlayer);
        }
        
        typedef DDLTYPE(uint32) TClanCreateClan_result;
        typedef DDLTYPE(string) TClanCreateClan_inClanName;
        typedef DDLTYPE(string) TClanCreateClan_inClanAbbr;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanCreateClan)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType inClanName;
            _MSG_EXTRACT_VARIABLE(TClanCreateClan_inClanName, inClanName);
            DDLTYPE(string)::CPPType inClanAbbr;
            _MSG_EXTRACT_VARIABLE(TClanCreateClan_inClanAbbr, inClanAbbr);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanCreateClan( inClanName, inClanAbbr );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanCreateClan);
            _MSG_ADD_VARIABLE(TClanCreateClan_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanGetMyClanMembershipList_result;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanMember) > TClanGetMyClanMembershipList_outMembers;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanGetMyClanMembershipList)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(std_list)< CLASSMETATYPE(EidosClanMember) >::CPPType outMembers;
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanGetMyClanMembershipList( &outMembers );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanGetMyClanMembershipList);
            _MSG_ADD_VARIABLE(TClanGetMyClanMembershipList_result,__result);
            _MSG_ADD_VARIABLE(TClanGetMyClanMembershipList_outMembers, outMembers);
        }
        
        typedef DDLTYPE(uint32) TClanGetClanIDListForPlayer_result;
        typedef DDLTYPE(uint32) TClanGetClanIDListForPlayer_inPid;
        typedef DDLTYPE(std_list)< DDLTYPE(uint32) > TClanGetClanIDListForPlayer_outClansList;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanGetClanIDListForPlayer)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType inPid;
            _MSG_EXTRACT_VARIABLE(TClanGetClanIDListForPlayer_inPid, inPid);
            DDLTYPE(std_list)< DDLTYPE(uint32) >::CPPType outClansList;
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanGetClanIDListForPlayer( inPid, &outClansList );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanGetClanIDListForPlayer);
            _MSG_ADD_VARIABLE(TClanGetClanIDListForPlayer_result,__result);
            _MSG_ADD_VARIABLE(TClanGetClanIDListForPlayer_outClansList, outClansList);
        }
        
        typedef DDLTYPE(uint32) TClanGetClanInfoFromClanID_result;
        typedef DDLTYPE(uint32) TClanGetClanInfoFromClanID_inCid;
        typedef CLASSMETATYPE(EidosClanProps) TClanGetClanInfoFromClanID_outProps;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanGetClanInfoFromClanID)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType inCid;
            _MSG_EXTRACT_VARIABLE(TClanGetClanInfoFromClanID_inCid, inCid);
            EidosClanProps outProps;
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanGetClanInfoFromClanID( inCid, &outProps );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanGetClanInfoFromClanID);
            _MSG_ADD_VARIABLE(TClanGetClanInfoFromClanID_result,__result);
            _MSG_ADD_VARIABLE(TClanGetClanInfoFromClanID_outProps, outProps);
        }
        
        typedef DDLTYPE(uint32) TClanGetMyInvitations_result;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) > TClanGetMyInvitations_outInvitesToMe;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) > TClanGetMyInvitations_outInvitesFromMe;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanGetMyInvitations)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) >::CPPType outInvitesToMe;
            DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) >::CPPType outInvitesFromMe;
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanGetMyInvitations( &outInvitesToMe, &outInvitesFromMe );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanGetMyInvitations);
            _MSG_ADD_VARIABLE(TClanGetMyInvitations_result,__result);
            _MSG_ADD_VARIABLE(TClanGetMyInvitations_outInvitesToMe, outInvitesToMe);
            _MSG_ADD_VARIABLE(TClanGetMyInvitations_outInvitesFromMe, outInvitesFromMe);
        }
        
        typedef DDLTYPE(uint32) TClanInvitePlayer_result;
        typedef DDLTYPE(string) TClanInvitePlayer_playerToInvite;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanInvitePlayer)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType playerToInvite;
            _MSG_EXTRACT_VARIABLE(TClanInvitePlayer_playerToInvite, playerToInvite);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanInvitePlayer( playerToInvite );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanInvitePlayer);
            _MSG_ADD_VARIABLE(TClanInvitePlayer_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanCancelInvitation_result;
        typedef DDLTYPE(string) TClanCancelInvitation_playerToUninvite;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanCancelInvitation)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType playerToUninvite;
            _MSG_EXTRACT_VARIABLE(TClanCancelInvitation_playerToUninvite, playerToUninvite);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanCancelInvitation( playerToUninvite );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanCancelInvitation);
            _MSG_ADD_VARIABLE(TClanCancelInvitation_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanAcceptInvitation_result;
        typedef DDLTYPE(uint32) TClanAcceptInvitation_clanIDInviter;
        typedef DDLTYPE(string) TClanAcceptInvitation_playerNameInviter;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanAcceptInvitation)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType clanIDInviter;
            _MSG_EXTRACT_VARIABLE(TClanAcceptInvitation_clanIDInviter, clanIDInviter);
            DDLTYPE(string)::CPPType playerNameInviter;
            _MSG_EXTRACT_VARIABLE(TClanAcceptInvitation_playerNameInviter, playerNameInviter);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanAcceptInvitation( clanIDInviter, playerNameInviter );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanAcceptInvitation);
            _MSG_ADD_VARIABLE(TClanAcceptInvitation_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanRejectInvitation_result;
        typedef DDLTYPE(uint32) TClanRejectInvitation_clanIDInviter;
        typedef DDLTYPE(string) TClanRejectInvitation_playerNameInviter;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanRejectInvitation)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType clanIDInviter;
            _MSG_EXTRACT_VARIABLE(TClanRejectInvitation_clanIDInviter, clanIDInviter);
            DDLTYPE(string)::CPPType playerNameInviter;
            _MSG_EXTRACT_VARIABLE(TClanRejectInvitation_playerNameInviter, playerNameInviter);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanRejectInvitation( clanIDInviter, playerNameInviter );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanRejectInvitation);
            _MSG_ADD_VARIABLE(TClanRejectInvitation_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanBlockInvitation_result;
        typedef DDLTYPE(uint32) TClanBlockInvitation_clanIDInviter;
        typedef DDLTYPE(string) TClanBlockInvitation_playerNameInviter;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanBlockInvitation)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType clanIDInviter;
            _MSG_EXTRACT_VARIABLE(TClanBlockInvitation_clanIDInviter, clanIDInviter);
            DDLTYPE(string)::CPPType playerNameInviter;
            _MSG_EXTRACT_VARIABLE(TClanBlockInvitation_playerNameInviter, playerNameInviter);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanBlockInvitation( clanIDInviter, playerNameInviter );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanBlockInvitation);
            _MSG_ADD_VARIABLE(TClanBlockInvitation_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanSetInvitationStatus_result;
        typedef DDLTYPE(bool) TClanSetInvitationStatus_isAcceptingInvites;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanSetInvitationStatus)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(bool)::CPPType isAcceptingInvites;
            _MSG_EXTRACT_VARIABLE(TClanSetInvitationStatus_isAcceptingInvites, isAcceptingInvites);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanSetInvitationStatus( isAcceptingInvites );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanSetInvitationStatus);
            _MSG_ADD_VARIABLE(TClanSetInvitationStatus_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanRemoveMember_result;
        typedef DDLTYPE(uint32) TClanRemoveMember_playerToRemove;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanRemoveMember)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType playerToRemove;
            _MSG_EXTRACT_VARIABLE(TClanRemoveMember_playerToRemove, playerToRemove);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanRemoveMember( playerToRemove );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanRemoveMember);
            _MSG_ADD_VARIABLE(TClanRemoveMember_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanAbandonClan_result;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanAbandonClan)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanAbandonClan(  );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanAbandonClan);
            _MSG_ADD_VARIABLE(TClanAbandonClan_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanPromote_result;
        typedef DDLTYPE(uint32) TClanPromote_playerToPromote;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanPromote)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType playerToPromote;
            _MSG_EXTRACT_VARIABLE(TClanPromote_playerToPromote, playerToPromote);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanPromote( playerToPromote );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanPromote);
            _MSG_ADD_VARIABLE(TClanPromote_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanDemote_result;
        typedef DDLTYPE(uint32) TClanDemote_playerToDemote;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanDemote)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType playerToDemote;
            _MSG_EXTRACT_VARIABLE(TClanDemote_playerToDemote, playerToDemote);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanDemote( playerToDemote );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanDemote);
            _MSG_ADD_VARIABLE(TClanDemote_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanNewLeader_result;
        typedef DDLTYPE(uint32) TClanNewLeader_playerNewLeader;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanNewLeader)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType playerNewLeader;
            _MSG_EXTRACT_VARIABLE(TClanNewLeader_playerNewLeader, playerNewLeader);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanNewLeader( playerNewLeader );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanNewLeader);
            _MSG_ADD_VARIABLE(TClanNewLeader_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanPostNotice_result;
        typedef DDLTYPE(string) TClanPostNotice_newNotice;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanPostNotice)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType newNotice;
            _MSG_EXTRACT_VARIABLE(TClanPostNotice_newNotice, newNotice);
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanPostNotice( newNotice );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanPostNotice);
            _MSG_ADD_VARIABLE(TClanPostNotice_result,__result);
        }
        
        typedef DDLTYPE(uint32) TClanGetMyNotices_result;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanNotice) > TClanGetMyNotices_outNotices;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanGetMyNotices)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(std_list)< CLASSMETATYPE(EidosClanNotice) >::CPPType outNotices;
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanGetMyNotices( &outNotices );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanGetMyNotices);
            _MSG_ADD_VARIABLE(TClanGetMyNotices_result,__result);
            _MSG_ADD_VARIABLE(TClanGetMyNotices_outNotices, outNotices);
        }
        
        typedef DDLTYPE(uint32) TClanMarkAlertKickedRead_result;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, ClanMarkAlertKickedRead)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType __result=pProtocol->ClanMarkAlertKickedRead(  );
            PROTO_PREPARE_RETURN(TTLMatchMaking,ClanMarkAlertKickedRead);
            _MSG_ADD_VARIABLE(TClanMarkAlertKickedRead_result,__result);
        }
        
        typedef DDLTYPE(uint32) TGetTopClans_count;
        typedef DDLTYPE(std_list)< CLASSMETATYPE(EidosClanProps) > TGetTopClans_lstClanStats;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, GetTopClans)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(uint32)::CPPType count;
            _MSG_EXTRACT_VARIABLE(TGetTopClans_count, count);
            DDLTYPE(std_list)< CLASSMETATYPE(EidosClanProps) >::CPPType lstClanStats;
            pProtocol->GetTopClans( count, &lstClanStats );
            PROTO_PREPARE_RETURN(TTLMatchMaking,GetTopClans);
            _MSG_ADD_VARIABLE(TGetTopClans_lstClanStats, lstClanStats);
        }
        
        typedef DDLTYPE(string) TGetMessageOfTheDay_inLanguage;
        typedef DDLTYPE(string) TGetMessageOfTheDay_outMessage;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, GetMessageOfTheDay)
        {
            PROTO_PREPARE_EXTRACTION();
            DDLTYPE(string)::CPPType inLanguage;
            _MSG_EXTRACT_VARIABLE(TGetMessageOfTheDay_inLanguage, inLanguage);
            DDLTYPE(string)::CPPType outMessage;
            pProtocol->GetMessageOfTheDay( inLanguage, &outMessage );
            PROTO_PREPARE_RETURN(TTLMatchMaking,GetMessageOfTheDay);
            _MSG_ADD_VARIABLE(TGetMessageOfTheDay_outMessage, outMessage);
        }
        
        typedef CLASSMETATYPE(EidosAccountPrivate) TGetEidosAccountInfo_outPrivateData;
        typedef CLASSMETATYPE(EidosAccountPublic) TGetEidosAccountInfo_outPublicData;
        typedef DDLTYPE(string) TGetEidosAccountInfo_email;
        PROTO_RMCIMPL_STUB(TTLMatchMaking, GetEidosAccountInfo)
        {
            PROTO_PREPARE_EXTRACTION();
            EidosAccountPrivate outPrivateData;
            EidosAccountPublic outPublicData;
            DDLTYPE(string)::CPPType email;
            pProtocol->GetEidosAccountInfo( &outPrivateData, &outPublicData, &email );
            PROTO_PREPARE_RETURN(TTLMatchMaking,GetEidosAccountInfo);
            _MSG_ADD_VARIABLE(TGetEidosAccountInfo_outPrivateData, outPrivateData);
            _MSG_ADD_VARIABLE(TGetEidosAccountInfo_outPublicData, outPublicData);
            _MSG_ADD_VARIABLE(TGetEidosAccountInfo_email, email);
        }
        
        private:
        // Call this function with a message previously generated by a
        // <RMC name>_PrepareRequest() call to have it dispatched to the correct RMC.
        virtual void DispatchProtocolMessage( Message *pMessage, Message *pReturnMessage, qBool *boReturnsMessage, EndPoint *pEndPoint);
        public:
        
        virtual void FindByLevelName(const DDLTYPE(string)::CPPType& levelName, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering) = 0;
        virtual void FindBySQLQuery(const DDLTYPE(string)::CPPType& query, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering) = 0;
        virtual void FindByRanking(const DDLTYPE(uint32)::CPPType& ranking, const DDLTYPE(uint32)::CPPType& maxdiff, const ResultRange& range, DDLTYPE(std_list)< DDLTYPE(any)< CLASSMETATYPE(Gathering), DDLTYPE(string) > >::CPPType* lstGathering) = 0;
        virtual void FindRankingPosition(const DDLTYPE(uint32)::CPPType& gid, DDLTYPE(uint32)::CPPType* position) = 0;
        virtual void GetTopPlayers(const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats) = 0;
        virtual void GetStatsForPlayers(const DDLTYPE(std_list)< DDLTYPE(uint32) >::CPPType& pidList, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats) = 0;
        virtual void GetLadderStats(const DDLTYPE(uint32)::CPPType& pivotPlayer, const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(TTLStats) >::CPPType* lstGameStats) = 0;
        virtual void GetAlerts(EidosAlerts* outAlerts) = 0;
        virtual void AddStatsPersonal(const DDLTYPE(std_list)< DDLTYPE(float) >::CPPType& statValues) = 0;
        virtual DDLTYPE(bool)::CPPType FilterText(const DDLTYPE(string)::CPPType& textToFilter) = 0;
        virtual DDLTYPE(bool)::CPPType FriendInvite(const DDLTYPE(string)::CPPType& strPlayer) = 0;
        virtual DDLTYPE(bool)::CPPType FriendInviteByID(const DDLTYPE(uint32)::CPPType& uiPlayer) = 0;
        virtual DDLTYPE(bool)::CPPType FriendAccept(const DDLTYPE(uint32)::CPPType& uiPlayer) = 0;
        virtual DDLTYPE(bool)::CPPType FriendReject(const DDLTYPE(uint32)::CPPType& uiPlayer, const DDLTYPE(bool)::CPPType& bBlock) = 0;
        virtual DDLTYPE(bool)::CPPType FriendDelete(const DDLTYPE(uint32)::CPPType& uiPlayer) = 0;
        virtual void FriendsQuery(const DDLTYPE(string)::CPPType& strLocale, DDLTYPE(std_list)< CLASSMETATYPE(EidosFriend) >::CPPType* lstFriendsList) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanGetMyClanInfo(EidosClanProps* outProps, EidosClanMember* outPlayer) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanCreateClan(const DDLTYPE(string)::CPPType& inClanName, const DDLTYPE(string)::CPPType& inClanAbbr) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanGetMyClanMembershipList(DDLTYPE(std_list)< CLASSMETATYPE(EidosClanMember) >::CPPType* outMembers) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanGetClanIDListForPlayer(const DDLTYPE(uint32)::CPPType& inPid, DDLTYPE(std_list)< DDLTYPE(uint32) >::CPPType* outClansList) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanGetClanInfoFromClanID(const DDLTYPE(uint32)::CPPType& inCid, EidosClanProps* outProps) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanGetMyInvitations(DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) >::CPPType* outInvitesToMe, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanInvite) >::CPPType* outInvitesFromMe) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanInvitePlayer(const DDLTYPE(string)::CPPType& playerToInvite) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanCancelInvitation(const DDLTYPE(string)::CPPType& playerToUninvite) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanAcceptInvitation(const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanRejectInvitation(const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanBlockInvitation(const DDLTYPE(uint32)::CPPType& clanIDInviter, const DDLTYPE(string)::CPPType& playerNameInviter) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanSetInvitationStatus(const DDLTYPE(bool)::CPPType& isAcceptingInvites) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanRemoveMember(const DDLTYPE(uint32)::CPPType& playerToRemove) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanAbandonClan() = 0;
        virtual DDLTYPE(uint32)::CPPType ClanPromote(const DDLTYPE(uint32)::CPPType& playerToPromote) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanDemote(const DDLTYPE(uint32)::CPPType& playerToDemote) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanNewLeader(const DDLTYPE(uint32)::CPPType& playerNewLeader) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanPostNotice(const DDLTYPE(string)::CPPType& newNotice) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanGetMyNotices(DDLTYPE(std_list)< CLASSMETATYPE(EidosClanNotice) >::CPPType* outNotices) = 0;
        virtual DDLTYPE(uint32)::CPPType ClanMarkAlertKickedRead() = 0;
        virtual void GetTopClans(const DDLTYPE(uint32)::CPPType& count, DDLTYPE(std_list)< CLASSMETATYPE(EidosClanProps) >::CPPType* lstClanStats) = 0;
        virtual void GetMessageOfTheDay(const DDLTYPE(string)::CPPType& inLanguage, DDLTYPE(string)::CPPType* outMessage) = 0;
        virtual void GetEidosAccountInfo(EidosAccountPrivate* outPrivateData, EidosAccountPublic* outPublicData, DDLTYPE(string)::CPPType* email) = 0;
    };


END_NAMESPACE_QUAZAL;

#endif // _TTLMatchMakingDDL.h_H_
