Node.js  v8.x
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine
node_url.cc File Reference
#include "node_url.h"
#include "node.h"
#include "node_internals.h"
#include "env.h"
#include "env-inl.h"
#include "util.h"
#include "util-inl.h"
#include "v8.h"
#include "base-object.h"
#include "base-object-inl.h"
#include "node_i18n.h"
#include <string>
#include <vector>
#include <stdio.h>
#include <cmath>
Include dependency graph for node_url.cc:

Go to the source code of this file.

Data Structures

union  url_host_value
 
struct  url_host
 

Namespaces

 node
 
 node::url
 

Macros

#define GET(env, obj, name)
 
#define GET_AND_SET(env, obj, name, data, flag)
 
#define UTF8STRING(isolate, str)
 
#define ARGS(XX)
 
#define ERR_ARGS(XX)
 
#define XX(name)   name,
 
#define XX(name)   name,
 
#define CHAR_TEST(bits, name, expr)
 
#define TWO_CHAR_STRING_TEST(bits, name, expr)
 
#define SPECIALS(XX)
 
#define XX(name, _)   if (scheme == name) return true;
 
#define XX(name, port)   if (scheme == name && p == port) return -1;
 
#define XX(name, _)   NODE_DEFINE_CONSTANT(target, name);
 
#define XX(name)   NODE_DEFINE_CONSTANT(target, name);
 

Enumerations

enum  url_host_type {
  HOST_TYPE_FAILED = -1, HOST_TYPE_DOMAIN = 0, HOST_TYPE_IPV4 = 1, HOST_TYPE_IPV6 = 2,
  HOST_TYPE_OPAQUE = 3
}
 
enum  url_cb_args
 
enum  url_error_cb_args
 

Functions

 CHAR_TEST (8, IsASCIIHexDigit,(IsASCIIDigit(ch)||(ch >='A' &&ch<='F')||(ch >='a' &&ch<='f'))) CHAR_TEST(8
 

Variables

 IsASCIIAlpha
 
 ch
 

Macro Definition Documentation

◆ ARGS

#define ARGS (   XX)
Value:
XX(ARG_FLAGS) \
XX(ARG_PROTOCOL) \
XX(ARG_USERNAME) \
XX(ARG_PASSWORD) \
XX(ARG_HOST) \
XX(ARG_PORT) \
XX(ARG_PATH) \
XX(ARG_QUERY) \
XX(ARG_FRAGMENT)
#define XX(name)
Definition: node_url.cc:106

Definition at line 84 of file node_url.cc.

◆ CHAR_TEST

#define CHAR_TEST (   bits,
  name,
  expr 
)
Value:
template <typename T> \
static inline bool name(const T ch) { \
static_assert(sizeof(ch) >= (bits) / 8, \
"Character must be wider than " #bits " bits"); \
return (expr); \
}

Definition at line 111 of file node_url.cc.

◆ ERR_ARGS

#define ERR_ARGS (   XX)
Value:
XX(ERR_ARG_FLAGS) \
XX(ERR_ARG_INPUT) \
#define XX(name)
Definition: node_url.cc:106

Definition at line 95 of file node_url.cc.

◆ GET

#define GET (   env,
  obj,
  name 
)
Value:
obj->Get(env->context(), \
OneByteString(env->isolate(), name)).ToLocalChecked()

Definition at line 36 of file node_url.cc.

◆ GET_AND_SET

#define GET_AND_SET (   env,
  obj,
  name,
  data,
  flag 
)
Value:
{ \
Local<Value> val = GET(env, obj, #name); \
if (val->IsString()) { \
Utf8Value value(env->isolate(), val.As<String>()); \
data->name = *value; \
data->flags |= flag; \
} \
}
#define GET(env, obj, name)
Definition: node_url.cc:36

Definition at line 40 of file node_url.cc.

◆ SPECIALS

#define SPECIALS (   XX)
Value:
XX("ftp:", 21) \
XX("file:", -1) \
XX("gopher:", 70) \
XX("http:", 80) \
XX("https:", 443) \
XX("ws:", 80) \
XX("wss:", 443)
#define XX(name)
Definition: node_url.cc:106

Definition at line 545 of file node_url.cc.

◆ TWO_CHAR_STRING_TEST

#define TWO_CHAR_STRING_TEST (   bits,
  name,
  expr 
)
Value:
template <typename T> \
static inline bool name(const T ch1, const T ch2) { \
static_assert(sizeof(ch1) >= (bits) / 8, \
"Character must be wider than " #bits " bits"); \
return (expr); \
} \
template <typename T> \
static inline bool name(const std::basic_string<T>& str) { \
static_assert(sizeof(str[0]) >= (bits) / 8, \
"Character must be wider than " #bits " bits"); \
return str.length() >= 2 && name(str[0], str[1]); \
}

Definition at line 119 of file node_url.cc.

◆ UTF8STRING

#define UTF8STRING (   isolate,
  str 
)
Value:
String::NewFromUtf8(isolate, str.c_str(), v8::NewStringType::kNormal) \
.ToLocalChecked()

Definition at line 50 of file node_url.cc.

◆ XX [1/6]

#define XX (   name)    name,

Definition at line 106 of file node_url.cc.

◆ XX [2/6]

#define XX (   name)    name,

Definition at line 106 of file node_url.cc.

◆ XX [3/6]

#define XX (   name,
 
)    if (scheme == name) return true;

Definition at line 106 of file node_url.cc.

◆ XX [4/6]

#define XX (   name,
  port 
)    if (scheme == name && p == port) return -1;

Definition at line 106 of file node_url.cc.

◆ XX [5/6]

#define XX (   name,
 
)    NODE_DEFINE_CONSTANT(target, name);

Definition at line 106 of file node_url.cc.

◆ XX [6/6]

#define XX (   name)    NODE_DEFINE_CONSTANT(target, name);

Definition at line 106 of file node_url.cc.