Node.js  v8.x
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine
node_dtrace.cc File Reference
#include "node_dtrace.h"
#include "env.h"
#include "env-inl.h"
#include "util.h"
#include <string.h>
Include dependency graph for node_dtrace.cc:

Go to the source code of this file.

Namespaces

 node
 

Macros

#define NODE_HTTP_SERVER_REQUEST(arg0, arg1)
 
#define NODE_HTTP_SERVER_REQUEST_ENABLED()   (0)
 
#define NODE_HTTP_SERVER_RESPONSE(arg0)
 
#define NODE_HTTP_SERVER_RESPONSE_ENABLED()   (0)
 
#define NODE_HTTP_CLIENT_REQUEST(arg0, arg1)
 
#define NODE_HTTP_CLIENT_REQUEST_ENABLED()   (0)
 
#define NODE_HTTP_CLIENT_RESPONSE(arg0)
 
#define NODE_HTTP_CLIENT_RESPONSE_ENABLED()   (0)
 
#define NODE_NET_SERVER_CONNECTION(arg0)
 
#define NODE_NET_SERVER_CONNECTION_ENABLED()   (0)
 
#define NODE_NET_STREAM_END(arg0)
 
#define NODE_NET_STREAM_END_ENABLED()   (0)
 
#define NODE_GC_START(arg0, arg1, arg2)
 
#define NODE_GC_DONE(arg0, arg1, arg2)
 
#define SLURP_STRING(obj, member, valp)
 
#define SLURP_INT(obj, member, valp)
 
#define SLURP_OBJECT(obj, member, valp)
 
#define SLURP_CONNECTION(arg, conn)
 
#define SLURP_CONNECTION_HTTP_CLIENT(arg, conn)
 
#define SLURP_CONNECTION_HTTP_CLIENT_RESPONSE(arg0, arg1, conn)
 
#define NODE_PROBE(name)   #name, name
 

Functions

void DTRACE_NET_SERVER_CONNECTION (const FunctionCallbackInfo< Value > &args)
 
void DTRACE_NET_STREAM_END (const FunctionCallbackInfo< Value > &args)
 
void DTRACE_HTTP_SERVER_REQUEST (const FunctionCallbackInfo< Value > &args)
 
void DTRACE_HTTP_SERVER_RESPONSE (const FunctionCallbackInfo< Value > &args)
 
void DTRACE_HTTP_CLIENT_REQUEST (const FunctionCallbackInfo< Value > &args)
 
void DTRACE_HTTP_CLIENT_RESPONSE (const FunctionCallbackInfo< Value > &args)
 
void dtrace_gc_start (Isolate *isolate, GCType type, GCCallbackFlags flags)
 
void dtrace_gc_done (Isolate *isolate, GCType type, GCCallbackFlags flags)
 
void InitDTrace (Environment *env, Local< Object > target)
 

Macro Definition Documentation

◆ NODE_GC_DONE

#define NODE_GC_DONE (   arg0,
  arg1,
  arg2 
)

Definition at line 43 of file node_dtrace.cc.

Referenced by node::dtrace_gc_done().

◆ NODE_GC_START

#define NODE_GC_START (   arg0,
  arg1,
  arg2 
)

Definition at line 42 of file node_dtrace.cc.

Referenced by node::dtrace_gc_start().

◆ NODE_HTTP_CLIENT_REQUEST

#define NODE_HTTP_CLIENT_REQUEST (   arg0,
  arg1 
)

Definition at line 34 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_CLIENT_REQUEST().

◆ NODE_HTTP_CLIENT_REQUEST_ENABLED

#define NODE_HTTP_CLIENT_REQUEST_ENABLED ( )    (0)

Definition at line 35 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_CLIENT_REQUEST().

◆ NODE_HTTP_CLIENT_RESPONSE

#define NODE_HTTP_CLIENT_RESPONSE (   arg0)

Definition at line 36 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_CLIENT_RESPONSE().

◆ NODE_HTTP_CLIENT_RESPONSE_ENABLED

#define NODE_HTTP_CLIENT_RESPONSE_ENABLED ( )    (0)

Definition at line 37 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_CLIENT_RESPONSE().

◆ NODE_HTTP_SERVER_REQUEST

#define NODE_HTTP_SERVER_REQUEST (   arg0,
  arg1 
)

Definition at line 30 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_SERVER_REQUEST().

◆ NODE_HTTP_SERVER_REQUEST_ENABLED

#define NODE_HTTP_SERVER_REQUEST_ENABLED ( )    (0)

Definition at line 31 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_SERVER_REQUEST().

◆ NODE_HTTP_SERVER_RESPONSE

#define NODE_HTTP_SERVER_RESPONSE (   arg0)

Definition at line 32 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_SERVER_RESPONSE().

◆ NODE_HTTP_SERVER_RESPONSE_ENABLED

#define NODE_HTTP_SERVER_RESPONSE_ENABLED ( )    (0)

Definition at line 33 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_SERVER_RESPONSE().

◆ NODE_NET_SERVER_CONNECTION

#define NODE_NET_SERVER_CONNECTION (   arg0)

Definition at line 38 of file node_dtrace.cc.

Referenced by node::DTRACE_NET_SERVER_CONNECTION().

◆ NODE_NET_SERVER_CONNECTION_ENABLED

#define NODE_NET_SERVER_CONNECTION_ENABLED ( )    (0)

Definition at line 39 of file node_dtrace.cc.

Referenced by node::DTRACE_NET_SERVER_CONNECTION().

◆ NODE_NET_STREAM_END

#define NODE_NET_STREAM_END (   arg0)

Definition at line 40 of file node_dtrace.cc.

Referenced by node::DTRACE_NET_STREAM_END().

◆ NODE_NET_STREAM_END_ENABLED

#define NODE_NET_STREAM_END_ENABLED ( )    (0)

Definition at line 41 of file node_dtrace.cc.

Referenced by node::DTRACE_NET_STREAM_END().

◆ NODE_PROBE

#define NODE_PROBE (   name)    #name, name

Referenced by node::InitDTrace().

◆ SLURP_CONNECTION

#define SLURP_CONNECTION (   arg,
  conn 
)
Value:
if (!(arg)->IsObject()) { \
return env->ThrowError( \
"expected argument " #arg " to be a connection object"); \
} \
node_dtrace_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg); \
Local<Value> _handle = \
(_##conn)->Get(FIXED_ONE_BYTE_STRING(env->isolate(), "_handle")); \
if (_handle->IsObject()) { \
SLURP_INT(_handle.As<Object>(), fd, &conn.fd); \
} else { \
conn.fd = -1; \
} \
SLURP_STRING(_##conn, remoteAddress, &conn.remote); \
SLURP_INT(_##conn, remotePort, &conn.port); \
SLURP_INT(_##conn, bufferSize, &conn.buffered);
bufferSize
Definition: node.d:61
remotePort
Definition: node.d:54
remoteAddress
Definition: node.d:56

Definition at line 90 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_SERVER_REQUEST(), node::DTRACE_HTTP_SERVER_RESPONSE(), node::DTRACE_NET_SERVER_CONNECTION(), and node::DTRACE_NET_STREAM_END().

◆ SLURP_CONNECTION_HTTP_CLIENT

#define SLURP_CONNECTION_HTTP_CLIENT (   arg,
  conn 
)
Value:
if (!(arg)->IsObject()) { \
return env->ThrowError( \
"expected argument " #arg " to be a connection object"); \
} \
node_dtrace_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg); \
SLURP_INT(_##conn, fd, &conn.fd); \
SLURP_STRING(_##conn, host, &conn.remote); \
SLURP_INT(_##conn, port, &conn.port); \
SLURP_INT(_##conn, bufferSize, &conn.buffered);
bufferSize
Definition: node.d:61
hostent * host
Definition: cares_wrap.cc:482

Definition at line 108 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_CLIENT_REQUEST().

◆ SLURP_CONNECTION_HTTP_CLIENT_RESPONSE

#define SLURP_CONNECTION_HTTP_CLIENT_RESPONSE (   arg0,
  arg1,
  conn 
)
Value:
if (!(arg0)->IsObject()) { \
return env->ThrowError( \
"expected argument " #arg0 " to be a connection object"); \
} \
if (!(arg1)->IsObject()) { \
return env->ThrowError( \
"expected argument " #arg1 " to be a connection object"); \
} \
node_dtrace_connection_t conn; \
Local<Object> _##conn = Local<Object>::Cast(arg0); \
SLURP_INT(_##conn, fd, &conn.fd); \
SLURP_INT(_##conn, bufferSize, &conn.buffered); \
_##conn = Local<Object>::Cast(arg1); \
SLURP_STRING(_##conn, host, &conn.remote); \
SLURP_INT(_##conn, port, &conn.port);
bufferSize
Definition: node.d:61
hostent * host
Definition: cares_wrap.cc:482

Definition at line 120 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_CLIENT_RESPONSE().

◆ SLURP_INT

#define SLURP_INT (   obj,
  member,
  valp 
)
Value:
if (!(obj)->IsObject()) { \
return env->ThrowError( \
"expected object for " #obj " to contain integer member " #member); \
} \
*valp = obj->Get(OneByteString(env->isolate(), #member)) \
->Int32Value();

Definition at line 75 of file node_dtrace.cc.

◆ SLURP_OBJECT

#define SLURP_OBJECT (   obj,
  member,
  valp 
)
Value:
if (!(obj)->IsObject()) { \
return env->ThrowError( \
"expected object for " #obj " to contain object member " #member); \
} \
*valp = Local<Object>::Cast(obj->Get(OneByteString(env->isolate(), #member)));

Definition at line 83 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_SERVER_REQUEST().

◆ SLURP_STRING

#define SLURP_STRING (   obj,
  member,
  valp 
)
Value:
if (!(obj)->IsObject()) { \
return env->ThrowError( \
"expected object for " #obj " to contain string member " #member); \
} \
node::Utf8Value _##member(env->isolate(), \
obj->Get(OneByteString(env->isolate(), #member))); \
if ((*(const char **)valp = *_##member) == nullptr) \
*(const char **)valp = "<unknown>";

Definition at line 65 of file node_dtrace.cc.

Referenced by node::DTRACE_HTTP_CLIENT_REQUEST(), and node::DTRACE_HTTP_SERVER_REQUEST().