using System; using System.Collections.Generic; using Aurora.Proto.Party; namespace Aurora.Services.EventManager { public interface IEventManager { /// /// Get the list of event type subscriptions for a given sessionIdentifier id. /// /// sessionIdentifier Id /// List GetSubscriptionList(string sessionIdentifier); /// /// Get the number of event subscriptions for a given sessionIdentifier /// /// sessionIdentifier Id /// int GetSubscriptionCount(string sessionIdentifier); /// /// Add a new subscription /// /// /// bool AddSubscription(string sessionIdentifier, EventType type); /// /// Add a list of subscriptions. This unsubscribes from unused events. /// /// The browser sessionIdentifier id. /// The list of event types to subscribe to. void AddSubscriptionList(string sessionIdentifier, List types); /// /// Unsubscribe from a given event type. /// /// sessionIdentifier Id /// Event Type to be removed void RemoveSubscription(string sessionIdentifier, EventType type); void RemoveSubscriptionList(string sessionIdentifier, List types); /// /// Remove all subscriptons for a given sessionIdentifier. /// /// sessionIdentifier Id void RemoveAllSubscriptions(string sessionIdentifier); void AddEventHandler(Action action, Action cancel, string sessionIdentifierId); void RemoveEventHandler(string sessionIdentifierId); void CancelEventStream(string sessionIdentifierId); void FireEvent(BaseEvent bEvent); } }