Exemple #1
0
        public Request(string clientAddress, RequestType type, string path, double version, Dictionary<string, string> headers)
        {
            ClientAddress = clientAddress;
            Type = type;
            Path = path;
            Version = version;
            Headers = headers;
            string lengthString;
            if (Headers.TryGetValue("Content-Length", out lengthString))
            {
                try
                {
                    ContentLength = Convert.ToInt32(lengthString);
                }
                catch (FormatException)
                {
                    throw new ClientException("Invalid content length specified");
                }
            }
            else
                ContentLength = null;

            Headers.TryGetValue("X-Real-IP", out ClientAddress);

            Content = new Dictionary<string, string>();

            //Arguments are null until set by a non-default Handler
            Arguments = null;

            RequestHandler = null;
        }
Exemple #2
0
        //Container constructor
        public Handler(string name)
        {
            IsContainer = true;
            IsDefaultHandler = false;
            IsChunkedHandler = false;

            Name = name;
            HandlerDelegate = null;
            ArgumentTypes = null;
            Children = new List<Handler>();
            Parent = null;
        }
Exemple #3
0
        //Default handler constructor
        public Handler(HandlerCallbackType handlerDelegate)
        {
            IsContainer = false;
            IsDefaultHandler = true;
            IsChunkedHandler = false;

            Name = null;
            HandlerCallback = handlerDelegate;
            //Default handlers can't have arguments as they must match an empty routing list
            ArgumentTypes = null;
            Children = new List<Handler>();
            Parent = null;
        }
Exemple #4
0
        static void Main(string[] arguments)
        {
            WebServer server = new WebServer("127.0.0.1", 9000);

            Handler container = new Handler("blight");
            server.Add(container);

            Handler markupHandler = new Handler("markup", MarkupTest);
            container.Add(markupHandler);

            Handler exceptionHandler = new Handler("exception", ExceptionTest);
            container.Add(exceptionHandler);

            SubmissionHandler = new Handler("submission", SubmissionTest);
            container.Add(SubmissionHandler);

            Handler chunkedHandler = Handler.ChunkedHandler("chunked", ChunkedTest, ContentType.Markup);
            container.Add(chunkedHandler);

            server.Run();
        }
Exemple #5
0
        void InitialiseHandlers()
        {
            IndexHandler = new Handler(Index);
            Server.Add(IndexHandler);

            SearchHandler = new Handler("Search", Search);
            Server.Add(SearchHandler);

            ViewSummonerGamesHandler = new Handler("SummonerGames", ViewSummonerGames, ArgumentType.String, ArgumentType.Integer);
            Server.Add(ViewSummonerGamesHandler);

            ViewSummonerHandler = new Handler("Summoner", ViewSummoner, ArgumentType.String, ArgumentType.Integer);
            Server.Add(ViewSummonerHandler);

            //JSON handlers

            LoadAccountDataHandler = new Handler("LoadAccountData", LoadAccountData, ArgumentType.String, ArgumentType.Integer);
            Server.Add(LoadAccountDataHandler);

            AutomaticUpdatesHandler = new Handler("AutomaticUpdates", AutomaticUpdates, ArgumentType.String, ArgumentType.Integer);
            Server.Add(AutomaticUpdatesHandler);
        }
Exemple #6
0
        //Constructor for regular handlers
        public Handler(string name, HandlerDelegateType handlerDelegate, params ArgumentType[] arguments)
        {
            IsContainer = false;
            IsDefaultHandler = false;
            IsChunkedHandler = false;

            Name = name;
            HandlerDelegate = handlerDelegate;
            ChunkedHandlerDelegate = null;
            ArgumentTypes = arguments;
            Children = new List<Handler>();
            Parent = null;
        }
Exemple #7
0
        //Constructor for chunked handlers
        void ChunkedHandlerInitialisation(string name, ChunkedHandlerDelegateType chunkedHandlerDelegate, ContentType contentType = ContentType.Plain, params ArgumentType[] arguments)
        {
            IsContainer = false;
            IsDefaultHandler = false;
            IsChunkedHandler = true;

            //The reply code is currently not customisable because it's not a common use case for chunked handlers
            ChunkedReplyCode = ReplyCode.Ok;
            ChunkedContentType = contentType;

            Name = name;
            HandlerDelegate = null;
            ChunkedHandlerDelegate = chunkedHandlerDelegate;
            ArgumentTypes = arguments;
            Children = new List<Handler>();
            Parent = null;
        }
Exemple #8
0
 public void SetParent(Handler parent)
 {
     Parent = parent;
 }
Exemple #9
0
 public void Add(Handler child)
 {
     child.SetParent(this);
     Children.Add(child);
 }
Exemple #10
0
 public static Handler ChunkedHandler(string name, ChunkedHandlerDelegateType chunkedHandlerDelegate, ContentType contentType = ContentType.Plain, params ArgumentType[] arguments)
 {
     Handler handler = new Handler();
     handler.ChunkedHandlerInitialisation(name, chunkedHandlerDelegate, contentType, arguments);
     return handler;
 }
Exemple #11
0
        void InitialiseHandlers()
        {
            Handler apiContainer = new Handler("API");
            Server.Add(apiContainer);

            ApiSearchHandler = new Handler("Search", ApiSearch, ArgumentType.String, ArgumentType.String);
            apiContainer.Add(ApiSearchHandler);

            ApiUpdateHandler = new Handler("Update", ApiUpdateSummoner, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiUpdateHandler);

            ApiSummonerProfileHandler = new Handler("Profile", ApiSummonerProfile, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiSummonerProfileHandler);

            ApiSummonerStatisticsHandler = new Handler("Statistics", ApiSummonerStatistics, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiSummonerStatisticsHandler);

            ApiSummonerGamesHandler = new Handler("Games", ApiSummonerGames, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiSummonerGamesHandler);

            ApiSummonerRunesHandler = new Handler("Runes", ApiSummonerRunes, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiSummonerRunesHandler);

            ApiSetAutomaticUpdatesHandler = new Handler("SetAutomaticUpdates", ApiSetAutomaticUpdates, ArgumentType.String, ArgumentType.Integer, ArgumentType.Integer);
            apiContainer.Add(ApiSetAutomaticUpdatesHandler);

            IndexHandler = new Handler(Index);
            Server.Add(IndexHandler);
        }
Exemple #12
0
 public void Add(Handler handler)
 {
     Handlers.Add(handler);
 }
Exemple #13
0
        void InitialiseHandlers()
        {
            Handler apiContainer = new Handler("API");
            Server.Add(apiContainer);

            ApiSearchHandler = new Handler(ApiSearchHandlerName, ApiSearch, ArgumentType.String, ArgumentType.String);
            apiContainer.Add(ApiSearchHandler);

            ApiUpdateHandler = new Handler(ApiUpdateHandlerName, ApiUpdateSummoner, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiUpdateHandler);

            ApiSummonerProfileHandler = new Handler(ApiSummonerProfileHandlerName, ApiSummonerProfile, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiSummonerProfileHandler);

            ApiSummonerStatisticsHandler = new Handler(ApiSummonerStatisticsHandlerName, ApiSummonerStatistics, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiSummonerStatisticsHandler);

            ApiSummonerGamesHandler = new Handler(ApiSummonerGamesHandlerName, ApiSummonerGames, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiSummonerGamesHandler);

            ApiSummonerRunesHandler = new Handler(ApiSummonerRunesHandlerName, ApiSummonerRunes, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiSummonerRunesHandler);

            ApiSetAutomaticUpdatesHandler = new Handler(ApiSetAutomaticUpdatesHandlerName, ApiSetAutomaticUpdates, ArgumentType.String, ArgumentType.Integer, ArgumentType.Integer);
            apiContainer.Add(ApiSetAutomaticUpdatesHandler);

            ApiWriteCommentHandler = new Handler(ApiWriteCommentName, ApiWriteComment, ArgumentType.String, ArgumentType.Integer, ArgumentType.String, ArgumentType.String);
            apiContainer.Add(ApiWriteCommentHandler);

            ApiGetCommentsHandler = new Handler(ApiGetCommentsName, ApiGetComments, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiGetCommentsHandler);

            ApiGetGameTeamHandler = new Handler(ApiGetGameTeamName, ApiGetGameTeam, ArgumentType.String, ArgumentType.Integer);
            apiContainer.Add(ApiGetGameTeamHandler);

            IndexHandler = new Handler(Index);
            Server.Add(IndexHandler);
        }