[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/Lackmann1994/esp32_https_server/master/src/HTTPNode.cpp [Back]  [Original]

#include "HTTPNode.hpp"
#include "HTTPSServerConstants.hpp"

namespace httpsserver {

  HTTPNode::HTTPNode(std::string const &path, const HTTPNodeType nodeType, std::string const &tag):
    _path(path),
    _tag(tag),
    _nodeType(nodeType) {

    // Count the parameters and store the indices
    size_t idx = 0;
    while((idx = path.find("/*", idx)) != std::string::npos) {
      // Skip the "/*"
      idx+=2;
      // Assure that we have either /* at the URL's end or /*/ somewhere in between
      if (idx == path.size() || path[idx] == '/') {
        _pathParamIdx.push_back(idx - 1);
      }
    };
  }
  
  HTTPNode::~HTTPNode() {
    // Delete validator references
    for(std::vector::iterator validator = _validators.begin(); validator != _validators.end(); ++validator) {
      delete *validator;
    }
  }

  bool HTTPNode::hasPathParameter() {
    return !_pathParamIdx.empty();
  }

  ssize_t HTTPNode::getParamIdx(size_t idx) {
    if (idx

Web Proxy Viewer  |  New URL  |  Original Page