aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Objects/MudAttributes.cs
blob: f944337f02a135100f8f14a41accdfb9489b2227 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
    {
        /// <summary>
        /// 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.
        /// </summary>
        /// <param name="rName">The header ID of the request this method should handle.</param>
        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
    {
        /// <summary>
        /// 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.
        /// </summary>
        /// <param name="rName">The header ID of the response that this method will handle.</param>
        public MudResponseAttribute(string rName)
        {
            ResponseName = rName;
        }

        public string ResponseName { get; private set; }
    }


}