HttpResourceTree.h
Go to the documentation of this file.
1 /****`
2  * Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
3  * Created 2015 by Skurydin Alexey
4  * http://github.com/SmingHub/Sming
5  * All files of the Sming Core are provided under the LGPL v3 license.
6  *
7  * HttpResourceTree.h
8  *
9  * @author: 2017 - Slavey Karadzhov <slav@attachix.com>
10  *
11  ****/
12 
13 #pragma once
14 
15 #include "HttpResource.h"
16 
18 
20 #define RESOURCE_PATH_DEFAULT String('*')
21 
24 class HttpResourceTree : public ObjectMap<String, HttpResource>
25 {
26 public:
30  void setDefault(HttpResource* resource)
31  {
32  set(RESOURCE_PATH_DEFAULT, resource);
33  }
34 
38  void setDefault(const HttpResourceDelegate& onRequestComplete)
39  {
40  set(RESOURCE_PATH_DEFAULT, onRequestComplete);
41  }
42 
44  void setDefault(const HttpPathDelegate& callback)
45  {
46  set(RESOURCE_PATH_DEFAULT, callback);
47  }
48 
53  {
55  }
56 
57  using ObjectMap::set;
58 
66  void set(const String& path, const HttpResourceDelegate& onRequestComplete)
67  {
68  HttpResource* resource = new HttpResource;
69  resource->onRequestComplete = onRequestComplete;
70  set(path, resource);
71  }
72 
80  void set(String path, const HttpPathDelegate& callback);
81 };
Implementation of a HashMap for owned objects, i.e. anything created with new().
Definition: ObjectMap.h:47
HttpResourceDelegate onRequestComplete
request is complete OR upgraded
Definition: HttpResource.h:47
void set(const K &key, V *value)
Set a key value.
Definition: ObjectMap.h:208
void setDefault(const HttpResourceDelegate &onRequestComplete)
Set the default resource handler, identified by "*" wildcard.
Definition: HttpResourceTree.h:38
The String class.
Definition: WString.h:136
Definition: Delegate.h:20
HttpResource * getDefault()
Get the current default resource handler, if any.
Definition: HttpResourceTree.h:52
#define RESOURCE_PATH_DEFAULT
Identifies the default resource path.
Definition: HttpResourceTree.h:20
Definition: HttpResource.h:30
void setDefault(const HttpPathDelegate &callback)
Set the default resource handler, identified by "*" wildcard.
Definition: HttpResourceTree.h:44
Class to map URL paths to classes which handle them.
Definition: HttpResourceTree.h:24
Delegate< void(HttpRequest &request, HttpResponse &response)> HttpPathDelegate
Definition: HttpResourceTree.h:17
void setDefault(HttpResource *resource)
Set the default resource handler.
Definition: HttpResourceTree.h:30
HttpResource * find(const String &key) const
Find the value for a given key, if it exists.
Definition: ObjectMap.h:225