// Copyright (c) 2007-2018 ppy Pty Ltd . // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using System; using osu.Framework.Configuration; using osu.Game.Online.Multiplayer; using osu.Game.Screens.Multi.Lounge.Components; namespace osu.Game.Screens.Multi { public interface IRoomManager { /// /// All the active s. /// IBindableCollection Rooms { get; } /// /// Creates a new . /// /// The to create. /// An action to be invoked if the creation succeeds. /// An action to be invoked if an error occurred. void CreateRoom(Room room, Action onSuccess = null, Action onError = null); /// /// Joins a . /// /// The to join. must be populated. /// /// void JoinRoom(Room room, Action onSuccess = null, Action onError = null); /// /// Parts the currently-joined . /// void PartRoom(); /// /// Queries for s matching a new . /// /// The to match. void Filter(FilterCriteria criteria); } }