// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Threading.Tasks; using osu.Game.Users; namespace osu.Game.Online.Metadata { /// /// Metadata server is responsible for keeping the osu! client up-to-date with various real-time happenings, such as: /// /// beatmap updates via BSS, /// online user activity/status updates, /// other real-time happenings, such as current "daily challenge" status. /// /// public interface IMetadataServer { /// /// Get any changes since a specific point in the queue. /// Should be used to allow the client to catch up with any changes after being closed or disconnected. /// /// The last processed queue ID. /// Task GetChangesSince(int queueId); /// /// Signals to the server that the current user's has changed. /// Task UpdateActivity(UserActivity? activity); /// /// Signals to the server that the current user's has changed. /// Task UpdateStatus(UserStatus? status); /// /// Signals to the server that the current user would like to begin receiving updates on other users' online presence. /// Task BeginWatchingUserPresence(); /// /// Signals to the server that the current user would like to stop receiving updates on other users' online presence. /// Task EndWatchingUserPresence(); /// /// Signals to the server that the current user would like to begin receiving updates about the state of the multiplayer room with the given . /// Task BeginWatchingMultiplayerRoom(long id); /// /// Signals to the server that the current user would like to stop receiving updates about the state of the multiplayer room with the given . /// Task EndWatchingMultiplayerRoom(long id); } }