diff options
Diffstat (limited to 'src/node_metadata.h')
-rw-r--r-- | src/node_metadata.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/node_metadata.h b/src/node_metadata.h new file mode 100644 index 0000000000..0f32fcf21d --- /dev/null +++ b/src/node_metadata.h @@ -0,0 +1,57 @@ +#ifndef SRC_NODE_METADATA_H_ +#define SRC_NODE_METADATA_H_ + +#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#include <string> + +namespace node { + +#define NODE_VERSIONS_KEYS_BASE(V) \ + V(node) \ + V(v8) \ + V(uv) \ + V(zlib) \ + V(ares) \ + V(modules) \ + V(nghttp2) \ + V(napi) + +#ifdef NODE_EXPERIMENTAL_HTTP +#define NODE_VERSIONS_KEY_HTTP(V) V(llhttp) +#else /* !NODE_EXPERIMENTAL_HTTP */ +#define NODE_VERSIONS_KEY_HTTP(V) V(http_parser) +#endif /* NODE_EXPERIMENTAL_HTTP */ + +#if HAVE_OPENSSL +#define NODE_VERSIONS_KEY_CRYPTO(V) V(openssl) +#else +#define NODE_VERSIONS_KEY_CRYPTO(V) +#endif + +#define NODE_VERSIONS_KEYS(V) \ + NODE_VERSIONS_KEYS_BASE(V) \ + NODE_VERSIONS_KEY_HTTP(V) \ + NODE_VERSIONS_KEY_CRYPTO(V) + +class Metadata { + public: + struct Versions { + Versions(); +#define V(key) std::string key; + NODE_VERSIONS_KEYS(V) +#undef V + }; + + Versions versions; +}; + +// Per-process global +namespace per_process { +extern Metadata metadata; +} + +} // namespace node + +#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS +#endif // SRC_NODE_METADATA_H_ |