using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using attribute = System.Attribute; namespace ShiftOS.Objects { [AttributeUsage(AttributeTargets.Method)] public class MudRequestAttribute : attribute { /// /// This attribute can be used on a static method to make the multi-user domain server software see this method as a MUD request handler. /// /// The header ID of the request this method should handle. public MudRequestAttribute(string rName, Type expected) { RequestName = rName; ExpectedType = expected; } public string RequestName { get; private set; } public Type ExpectedType { get; private set; } } [AttributeUsage(AttributeTargets.Method)] public class MudResponseAttribute : attribute { /// /// Clients will look for static methods marked with this attribute and run them first. If no attribute is found with the given header ID, the client may invoke a delegate with the message information. /// /// The header ID of the response that this method will handle. public MudResponseAttribute(string rName) { ResponseName = rName; } public string ResponseName { get; private set; } } }